文章转载自:http://blog.csdn.net/antoinette/article/details/2112671
导读: 声明导出函数: DLL内的函数分两种:只在DLL内部调用的、DLL导出函数——供应用程序调用 声明导出函数两种方法: (1)在函数声明中加上extern"C" int _declspec(dllexport)add(int x,int y);//一定要加上extern "C" (2)采用模块定义(.def)文件声明。.def文件为链接器提供了有关被链接程序的导出、属性和其他信息。 MFC AppWizard为MFC DLL创建一个.def文件,而Win32 DLL,用户必须自己创建.def文件。 .def定义示例代码如下: dll.def:导出DLL函数 LIBRARY dllTest DESCRIPTION "math" EXPORTS GlobleVar DATA add @1 sub @2 .def文件的规则为: (1)LIBRARY语句指出DLL的名字 (2)EXPORTS语句后列出一系列函数名称。可以在导出函数后加@n,表示函数序号。 (3);表示注释,且注释不能和语句共享一行。 (4)可选部分——DESCRIPTION语句,原来描述DLL的用途。 (5)变量名 DATA:导出全局变量 DLL的调用(加载)方式: (1)动态调用(显式链接) LoadLibrary() GetProcAddress() FreeLibrary() (2)静态调用(隐式链接) 由编译系统完成对DLL的加载和应用程序结束时对DLL的卸载。需要做两个工作: a:将编译dll工程所得的.lib和.dll文件放入调用dll工程所在的路径。 包含.lib文件:#pragma comment(lib,"dllTest.lib") or project->setting->link->... b:声明导入函数,extern "C" int _declspec(dllimport) add(int x,int y)中的_declspec(dllimport)//must add extern "C" Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1881088 本文转自 http://blog.csdn.net/blueshelly/archive/2007/11/12/1881088.aspx