LoadLibrary 和 GetProcAddress 的问题。
LoadLibrary 和 GetProcAddress 的问题。
首先新建了个工程 名字叫 MakeDll.
--------------
.cpp里:
#define MakeDll_API _declspec(dllexport)
#include "MakeDll.h"
int MyFun(int i)
{
i = i+2;
return i;
}
---------------
.h里
#ifdef MakeDll_API
#else
#define MakeDll_API _declspec(dllimport)
#endif
MakeDll_API int MyFun(int i);
----------------
这个工程没问题,我用静态调用这个dll是没问题的。
然户我想动态用LoadLibrary 调用。可是GetProcAddress函数始终返回空。在另一个工程里:
------------------------
#include <stdio.h>
#include <windows.h>
typedef int(*lpAddFun)(int);
void CLoadLibraryTestDlg::OnButton1()
{
HINSTANCE hDll;
lpAddFun addFun;
hDll = LoadLibrary("MakeDll.dll"); //这里能成功 ,hDll 不为空
if (hDll != NULL)
{ //下面这句不成功,addFun 始终为空。
addFun = (lpAddFun)GetProcAddress(hDll,"MyFun");
if (addFun != NULL)
{
int result = 0 ;
result = addFun(2);
}
FreeLibrary(hDll);
}
}
--------------------
GetProcAddress函数这样用有问题吗?谢谢大家。