调用dll中的函数GetProcAddress返回值为空,请帮忙!!

来源:百度知道 编辑:UC知道 时间:2024/06/09 19:22:37
在.def中 EXPORTS
DllCanUnloadNow @1 PRIVATE
DllGetClassObject @2 PRIVATE
DllRegisterServer @3 PRIVATE
DllUnregisterServer @4 PRIVATE
UpdateData @5
在.cpp中
extern "C" void PASCAL EXPORT UpdateData()
{
CMasterObject *ff ;
ff->UpdateData();
}
在另一个dll中的dllmain中调用的语句如下:
HINSTANCE hDllInst = LoadLibrary("JIT_TPMSIeMenu.dll");
if (hDllInst) {
typedef DWORD (WINAPI *MYFUNC)();
MYFUNC myUpdate = (MYFUNC)::GetProcAddress (hDllInst,"UpdateData");
if (myUpdate) {
myUpdate();
}
FreeLibrary(hDllInst);
}
结果每次myUpdate都是空,如果换成
DllCanUnloadNow @1 PRIVATE
DllGetClassObject @2 PRIVATE
DllRegisterServer @3 PRIVATE
DllUnregisterServer @4 PRIVATE
myUpdate就不为空了,请问是为什么阿?拜托了!因为实在是没有分数了,只能有多少给多少了,帮帮忙!!!!!!!!
调用的函数是类成员函数,该类为一个接口类,但是该方法不是接口

dll编写导出函数格式为extern “C” _declspec(dllexport) 函数名(参数)
调用时把编译出来的.dll 文件和.obj 文件放入新创建工程的根目录里

DLL 装载失败