请教VC++中一个Dll中的函数调用问题

我用VC写个Dll,里面有几个函数,比如在.def文件里,有A1@1,A2@2,A3@3等几个函数。我如想在A1函数里调用A2,这样能调用吗?怎么表达呢?... 我用VC写个Dll,里面有几个函数,比如在.def文件里,有A1 @1,A2 @2, A3 @3等几个函数。我如想在A1函数里调用A2,这样能调用吗?怎么表达呢? 展开
 我来答
匿名用户
2015-05-19
展开全部
调用已经存在的DLL中的函数有两种方法,动态调用(显式调用)和静态调用(隐式调用)。
对于动态调用来说,你只需要拥有这个DLL并且知道导出函数的原型即可。例如,在MyDll.dll中导出了一个int Add(int a, int b);函数,实现了加法操作。在你的程序中如果想调用这个Add函数的话,需要如下编码(这里认为是每一步都会成功):
typedef int (*ADD)(int, int);
HMODULE hDll = LoadLibraryA("MyDll.dll");
ADD Add = (ADD)GetProcAddress(hDll, "Add");
int nRes = Add(10, 25);
……
FreeLibrary(hDll);
对于静态调用,除了需要拥有那个DLL外,你还需要拥有一个和那个DLL一起发布的函数声明头文件.h和一个导入库文件.lib。但是使用起来相对要方便的多,编码如下:
#include "MyDll.h"
#pragma comment(lib, "MyDll.lib")
……
int nRes = Add(10, 25);
……
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式