首页 > 代码库 > C++ 中的动态库(Windows)

C++ 中的动态库(Windows)

库:

在C/C++中,使用库(Library)的技术,可以将编译好的符号提供给第三方使用。

库有两种:

1、动态库 Dynamic-Link Library (DLL)    (Linux下叫做 Shared Library)

2、静态库 Static Library


一、动态库的基本概念

创建DLL:

用VC创建一个类型为 “dll”的控制台项目,VC会自动创建DLL的项目框架

它自动生成一个DllMain函数,可以类比普通应用程序中的main函数


VC项目设置:

1、取消“预编译头文件”

2、改为 “/MTd编译”

3、修改输出的DLL的名字 (my.dll)


技术分享

技术分享

技术分享


编译,得到 *.lib 和 *.dll



如果想导出一个全局函数,就用关键字 __declspec(dllexport)来声明

注意:这是VC平台特有的关键字,在linux平台下不可用

使用如下:

template <typename T>
__declspec(dllexport) void MySwap(T& obj1, T& obj2)
{
	T tmp = obj1;
	obj1 = obj2;
	obj2 = tml;
}


C++ 中的动态库(Windows)