如何调用LL中的函数
在DLL工程中的cpp中函数定义如下:
extern"C"_declspec(dllexport)
intadd(inta,charb)
{
returna + b;
}
一:显示链接
调用的DLL的主工程的main文件中代码如下:
#include<stdio.h>
#include<Windows.h>
#include<tchar.h>
intmain()
{
HMODULE hModule = NULL;
typedefint(*Func)(inta,intb);
//动态加载DLL文件
hModule = LoadLibrary(_TEXT("..//Debug//FuncDll.dll"));
//获取add函数地址
Func fAdd = (Func)GetProcAddress(hModule,"add");
//使用函数指针
printf("%d/n", fAdd(5, 2));
//最后记得要释放指针
FreeLibrary(hModule);
return0;
}
二:隐式链接:
调用的DLL的主工程的main文件中代码如下:
#include<stdio.h>
#include<Windows.h>
#include<tchar.h>
//先把lib链接进来
#pragmacomment(lib,"..//Debug//FuncDll.lib")
//外部声明的add函数
extern"C"_declspec(dllimport)
intadd(inta,charb);
intmain()
{
//直接调用add函数
printf("%d/n", add(5, 2));
return0;
}
本文介绍了如何在C++中通过显示链接和隐式链接的方式调用DLL中的函数。具体包括使用LoadLibrary与GetProcAddress进行动态加载及调用的过程,以及通过#pragma comment(lib)与extern C __declspec(dllimport)声明实现的静态链接方法。
1万+

被折叠的 条评论
为什么被折叠?



