注册 登录
编程论坛 VC++/MFC

求助: 调用DLL中的函数 GetProcAddress返回空

linan03 发布于 2013-10-17 09:55, 2583 次点击
VS2010下
说一下情况:
调用工程中:
    HMODULE hModule = LoadLibrary(_T("Create_buttonEX_DLL.dll"));
    TestFun tFun = (TestFun)GetProcAddress(hModule, "LoadingDllTest");
    if (tFun != NULL)
    {
        tFun();
    }
    FreeLibrary(hModule);
其中TestFun 函数指针类型确定没错

创建DLL的工程中:
声明
extern "C" VOID __declspec(dllexport) LoadingDllTest();
实现
void LoadingDllTest()
{
    AFX_MANAGE_STATE(AfxGetStaticModuleState());

    ::MessageBoxA(NULL,"test",NULL,MB_OK);
     CDialogForDll mainDlg;
     mainDlg.DoModal();
}
模块定义文件
LIBRARY Create_buttonEX_DLL
EXPORTS
    LoadingDllTest @ 1


在调用时 返回的tFun  为NULL
这可能是什么原因??
3 回复
#2
yuccn2013-10-17 13:06
你用Depends.exe 打开你的那个dll看看,是否能够正常导出了
没有Depends.exe 就下载一个。
#3
linan032013-10-18 13:36
真是不好意思
原来是LoadLibrary这边就返回NULL了

虽然设置里已经添加了这个库目录
但是还是找不到  

直接放到工程目录下 然后就可以了
#4
yuccn2013-10-18 21:20
回复 3楼 linan03
用全路径保障点
1