尝试在VB6中显示C ++ DLL中的UI会导致在AfxGetResourceHandle处断言

时间:2012-07-12 22:25:38

标签: vb6 mfc

我有一个传统的vb6代码,它调用c ++来显示MFC对话框。 调用AfxGetResourceHandle将dll的资源加载到内存会导致调试断言。 有没有人这样做过?

    HINSTANCE priorRes = AfxGetResourceHandle();

    if (m_MDCommonDll == NULL)
    {
        m_MDCommonDll = LoadLibrary("MyDll.dll");
    }

    AfxSetResourceHandle(m_MDCommonDll);

如果无法做到这一点,有没有办法检测调用者是否来自vb6,以便我可以跳过显示用户界面?

由于

1 个答案:

答案 0 :(得分:1)

如果混合发布和调试构建DLL,AfxGetResourceHandle()可以抛出调试断言。确保你的.exe和它加载的任何.dll都被构建为release或debug。