MFC DLL问题

我创建了一个MFCDLL,类名为testdll,然后在CtestdllApp.h中建了一个函数intadd(inta,intb);在CtestdllApp.cpp中实现如... 我创建了一个MFC DLL,类名为testdll,然后在CtestdllApp.h中建了一个函数int add(int a,int b);在CtestdllApp.cpp中实现如下:
int CtestdllApp::add(int a, int b)
{
return a+b;
}
请问我调用了该DLL后如何能使用这个函数?
展开
 我来答
夺魂狼剑
2010-02-28 · TA获得超过1273个赞
知道小有建树答主
回答量:796
采纳率:0%
帮助的人:797万
展开全部
用GetProcAddress就行。关于具体细节,请参考我的另一个回答:)
http://zhidao.baidu.com/question/136396224.html

唉~ 算了,还是贴出来吧~
请看示例。

HINSTANCE hInstDLL = LoadLibrary(_T("a.dll"));
if(hInstDLL != NULL)
{
typedef VOID (*pFn)(VOID); // 这里定义函数指针,要根据你的实际情况
pFn pFunc = (pFn)GetProcAddress(hInstDll, "要加载的函数名");
if(pFunc != NULL)
pFunc(); // 调用DLL中的函数
else
AfxMessageBox(_T("函数加载失败"));
}
else
AfxMessageBox(_T("DLL加载失败"));

另外,如果还是出错的话,请确认一下DLL中导出函数的前缀:
extern "C" __declspec(dllexport)

希望能对你有所帮助
百度网友4aa0cbadf
2010-02-27 · TA获得超过299个赞
知道小有建树答主
回答量:274
采纳率:0%
帮助的人:358万
展开全部
你程序是用dll函数可以两种方式,一个是隐式,一个是显式

隐式的话很容易,只要将导入函数关键字_declspec(dllimport)函数名等写到应用程序相应的头文件中就可以了。

显式的话要麻烦一些。在应用程序中用 LoadLibrary或MFC提供的AfxLoadLibrary显式的将自己的dll调进来,dll的文件名即是上述函数的参数,然后再用GetProcAddress()获取想要使用的函数。

显式链接可以加载DLL文件,也可以随时卸载DLL文件,这是隐式链接无法作到的,所以显式链接具有更好的灵活性。

我推荐你用显式链接,用多了就不觉得麻烦了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式