기본카테고리

MFC 확장 DLL 리소스 로딩 오류

DevReff 2022. 11. 24. 09:38




728x90

MFC 확장 DLL 에 있는 리소스 (예:다이얼로그)를 사용할 때

다이얼로그의 일부 자원(예:버튼)이 사라지는 현상이 발생했을 때

extern "C" __declspec(dllexport)와 

사용하는 함수 내부에 AFX_MANAGE_STATE(AfxGetStaticModuleState());를 사용하면 해결이 된다.

 

예제)

1. MFC 확장 DLL

class __declspec(dllexport) CMessageDlg : CDialog

{

}

 

2. MFC 확장 DLL 사용하기

#include "../MfcDll/MessageDlg.h"

 

extern "C" __declspec(dllexport)
int gCallMessageDlg(CString strMsg)

{

    AFX_MANAGE_STATE(AfxGetStaticModuleState());

    CMessageDlg dlg;

    return dlg.DoModal();

}