静态链接库与动态链接库

静态链接库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 
#include 
typedef int(*pFun)(int,int);
using namespace std;
int main()
{
	HINSTANCE hDll;
	hDll = LoadLibrary("dll_test.dll");
	pFun p=(pFun)GetProcAddress(hDll,"add");
	cout<


 

你可能感兴趣的:(静态链接库与动态链接库)