文章轉載自: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