LoadLibrary 和 GetProcAddress 的问题。

王楚铁 王楚铁 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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函数这样用有问题吗?谢谢大家。
...全文

相关推荐

评论 8
收藏 已收藏
分享
返回顶部
王楚铁
VC/MFC 16,550 成员 421,606 内容