私は最近、"afxdlg.h"
をインポートし、CFileDialog
を呼び出して、MFCダイアログを使用するDLL(github)を見つけましたが、MFCに静的にリンクするように見えますが、CWinApp
に基づくクラスはありません。私は多少混乱しています:それはMFC DLLかどうかですか?どうしてそれはCWinApp
を持っていないのですか?言い換えるCWinAppなしでMFCを使用しているDLL?
: Win32のDLLには、私はいくつかのMFCクラスを使用します(たとえば、私は"afxdlgs.h"
を含めるとCFileDialog
を使用)静的にリンクMFC。 DllMain
はありません。最終的なDLLはWin32からまたはMFCからDllMain
を持っていますか?
MFCバージョンを選択した場合、別の質問:DllMain
(スレッドなし)のWin32 DLLをMFC DllMain
を使用する最も単純な方法は何ですか?次は正しいですか?
#include "afx.h" /* correct? */
class MyDll: public CWinApp
{
public:
/* do I need constructor and destructor here? */
virtual BOOL InitInstance();
virtual BOOL ExitInstance();
} theDll;
BOOL
MyDLL::InitInstance()
{
CWinApp::InitInstance();
/* code from old DllMain, DLL_PROCESS_ATTACH.
For hInst use theDll.m_hInstance */
return TRUE;
}
BOOL
MyDLL::ExitInstance()
{
/* code from old DllMain, DLL_PROCESS_DETACH */
return CWinApp::ExitInstance();
}