静态链接库lib,在生成可执行文件时,被全部嵌入到exe中,其显式调用:#pragma comment(lib,"XXX.lib")
目标工程编译链接之前需要将lib文件和头文件拷贝到工程目录中。运行时不需要lib文件。
动态链接库是在程序运行过程中,动态加载dll文件中的函数来执行。因此dll文件需要与exe文件同时发布,exe才能运行。
dll模块实例源码:
头文件 add.h
extern "C" _declspec(dllexport)int add(int,int);
源文件add.cpp
#include "add.h"
int add(int x,int y)
{
return x+y;
}
调用dl模块实例源码:
#include <iostream>
#include <Windows.h>
typedef int(*pFun)(int,int);
using namespace std;
int main()
{
HINSTANCE hDll;
hDll = LoadLibrary("dll_test.dll");
pFun p=(pFun)GetProcAddress(hDll,"add");
cout<<p(1,2)<<endl;
system("pause");
return 0;
}