求助~关于MFC扩展dll调用时出现错误“访问冲突”

anwyo anwyo 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
有一个MFC 扩展dll,其中有一导出函数InitializeAnvilExtension,内容如下:
void WINAPI InitializeAnvilExtension()
{
ShowMainWindow();//出现一个窗口;
}

现有MFC应用程序调用这个dll,主要内容如下:

HINSTANCE hinst=::AfxLoadLibraryEx(_T("test.dll"),NULL,DONT_RESOLVE_DLL_REFERENCES);
if(hinst !=NULL)
{
AfxMessageBox(_T("load dll"));
typedef void ( *myfunc)(); // WINAPI// CALLBACK
myfunc fun=NULL;
fun=(myfunc)GetProcAddress(hinst,"InitializeAnvilExtension");
if(fun)
{
AfxMessageBox(_T("load fun"));
fun();
}
AfxFreeLibrary(hinst);
}
加载dll的hinst 和函数指针fun都不为空值,但是执行到 fun()时出现错误,如下:
test.exe 中的 0x800002fa 处最可能的异常: 0xC0000005: 读取位置 0x800002fa 时发生访问冲突

被这个问题困扰了好几天了,郁闷~有没有人知道这个问题的解决方法~
谢谢~
...全文
评论 19
收藏 已收藏
分享
返回顶部
anwyo
进程/线程/DLL 15,466 成员 49,169 内容