1.隐式链接加载动态链接库
如果有XXX.h ,XXX.lib,XXX.dll,这样就可以隐式链接加载了。
在所要引用的.cpp文件中加入
#include “XXX.h” //包含静态链接库的头文件
#pragma comment(lib,"XXX") //隐式调用库文件
这样就可以使用dll中封装的函数了。
其中语句“#pragma comment(lib,”XXX”)”可以用工程设置对话框的设置来代替。
#pragma comment ( lib,"wpcap.lib" )
表示链接wpcap.lib这个库。
和在工程设置里写上链入wpcap.lib的效果一样(两种方式等价,或说一个隐式一个显式调用),不过这种方法写的 程序别人在使用你的代码的时候就
不用再设置工程settings了。告诉连接器连接的时候要找ws2_32.lib,这样你就不用在linker的lib设置
里指定这个lib了。
#include "Mwic_32.h"
#pragma comment(lib,"Mwic_32.lib")
就不需要在project setting里面设置了
2.动态加载动态链接库
如果只有XXX.dll,只能动态加载,主要通过LoadLibrary和GetProcAddress两个函数来实现。
举个小例子:
int ires;
typedef int (_cdecl *MyFunc)(int,int);
HMODULE hModule = ::LoadLibrary(“MyDynamicLib.dll”); //加载动态链接库 此提供函数GetMaxCommDiv(int,int)计算最大公约数
MyFinc GetValue = (MyFunc)GetProcAddress(hModule,”GetMaxCommDiv”);
ires=GetValue(m,n);
FressLibrary(hModule);