静态链接库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; }