在VS2012中将MFC GUI应用程序编译为DLL

时间:2014-02-15 11:52:44

标签: c++ dll mfc

是否可以将MFC GUI EXE项目编译为DLL,然后从另一个应用程序执行此DLL应用程序?

到目前为止我的进展是:

  • 我将“配置属性|常规|配置类型”更改为DLL
  • 我添加了一个导出函数,使用以下代码创建并运行应用程序:

    theApp.m_hInstance = pModuleState->m_hCurrentInstanceHandle;
    theApp.InitInstance();
    theApp.Run();
    
  • 我在DLLMain中添加了代码来初始化模块状态:

    if (dwReason == DLL_PROCESS_ATTACH)
    {
        AFX_MODULE_STATE* pModuleState = AfxGetModuleState();
        pModuleState->m_hCurrentInstanceHandle = hInstance;
        pModuleState->m_hCurrentResourceHandle = hInstance;
    
  • 我创建了一个控制台应用程序,它加载DLL并调用创建和运行DLL应用程序的函数。

然而,我仍然得到各种调试断言,例如,AfxGetThread返回NULL等等。并且应用程序无法运行。

有人能告诉我,我从EXE制作DLL的想法是否切合实际?

提前致谢。

0 个答案:

没有答案