DLL的创建与调用1、DLL的概念DLL(DynamicLinkableLibrary),动态链接库,可以向程序提供一些函数、变量或类
这些可以直接拿来使用
静态链接库与动态链接库的区别:(1)静态链接库与动态链接库都是共享代码的方式
静态链接库把最后的指令都包含在最终生成的EXE文件中了;动态链接库不必被包含在最终EXE文件中,EXE文件执行时可以“动态”地引用和卸载这个与EXE独立的DLL文件
(2)静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库
动态链接库的分类:VisualC++支持三种DLL,它们分别是Non-MFCDLL(非MFC动态库)、MFCRegularDLL(MFC规则DLL)、MFCExtensionDLL(MFC扩展DLL)
非MFC动态库不采用MFC类库结构,其导出函数为标准的C接口,能被非MFC或MFC编写的应用程序所调用;MFC规则DLL包含一个继承自CWinApp的类,但其无消息循环;MFC扩展DLL采用MFC的动态链接版本创建,它只能被用MFC类库所编写的应用程序所调用
2、创建一个DLL2
1非MFC的DLL2
1声明导出函数:extern“C”__declspec(dllexport)intadd(inta,intb);其中extern“C”为声明为C编译
由于C++编译器在编译的时候会造成其函数名的该变,在其他应用程序中导致函数不可调用,而C编译器则不会在编译后改变其函数名
这样如果用C编译的程序来调用该dll中的函数时,可能会造成找不到该函数
__declspec(dllexport)表示该函数为DLL输出函数,即其他应用程序可以调用该函数从dll中声明输出函数有两种方式:(1)另外一种方式是采用模块定义(
def)文件声明,
def文件为链接器提供了有关被链接程序的导出、属