@在DLL中使用非模式对话框,Create ShowWindow之后为什么还会有“该内存不read之类”的错误!

解决方案 »

  1.   

    因为DLL被加载到可执行程序的地址空间中,当前程序实例句柄是可执行程序的而不是你的DLL的实例句柄。而你的对话框模板资源是在你的DLL中定义的,因此程序执行时根据应用程序句柄,找不到你的对话框资源。所以在调用该资源前应该先切换它们的实例句柄,调用完后再切换回来。
      

  2.   

    是这样切换吧!AfxSetResourceHandle(theApp.m_hInstance);
    pMyBrowser->Create(IDD_MYBROWSER)
    pMyBrowser->ShowWindow(SW_SHOW);
    AfxSetResourceHandle(AfxGetInstanceHandle());可是还不行!
      

  3.   

    theApp.m_hInstance是应用程序实例句柄,不是DLL的,当然不成了!
      

  4.   

    你创建的是支持MFC的动态库吧,不是 MFC扩展的?
      

  5.   

    MFC的动态库吧和MFC扩展有什么区别?
      

  6.   

    扩展的的能导出MFC派生的类,不扩展的应该不能导出MFC派生类吧?在下很少用不扩展的,这个问题还得向你请教了!