求助~关于MFC扩展dll调用时出现错误“访问冲突”
有一个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 时发生访问冲突
被这个问题困扰了好几天了,郁闷~有没有人知道这个问题的解决方法~
谢谢~
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 时发生访问冲突
被这个问题困扰了好几天了,郁闷~有没有人知道这个问题的解决方法~
谢谢~
...全文


进程/线程/DLL
