C++Builder中動態庫的鏈接問題9.0分出處:2345軟件大全 時間:2011-06-27 人氣:1031
核心提示:動態庫鏈接到應用程序中主要有兩種方式:隱式鏈接和顯式鏈接。隱式鏈接是常用方式 動態庫鏈接到應用程序中主要有兩種方式:隱式鏈接和顯式鏈接。隱式鏈接是常用方式。 顯式連接:顯式連接不需要在工程中加入導入庫和相應的頭文件,只需要把動態庫放入指定的目錄下。在應用程序中通過函數調用顯式的裝載和卸掉DLL,通過函數指針來調用DLL的導出函數。 步驟: 1. 調用LoadLibrary函數裝載DLL並得到模塊句柄; 例子: 用VC++製作一個動態庫: 選new→Project→Win32—Dynamic—Link Library,加入addit.cpp extern 〞C〞 { { } } addit.h extern 〞C〞 {void addit(int a, int b, int *c);} 編譯鏈接生成addit.dll和addit.lib.在C++Builder程序中調用addit函數。 C++Builder程序中: { 使用C++Builder中提供的導入庫生成工具:先預處理,後隱式鏈接。 步驟: 1.用C++Builder提供的implib.exe工具重新生成該動態庫(xxx.dll)的導入庫(xxx.lib)。命令如下: implib addit.lib addit.dll. addit.dll為已有動態庫,addit.lib為要生成的導入庫。由此生成的導入庫addit.lib格式與C++Builder開發平台是相容的; 2.在動態庫的頭文件addit.h中,對其輸出函數重新說明,語句如下: extern __stdcall void addit( int a, int b, int *c); 3.然後採用隱式鏈接法,將重新生成的導入庫(addit.lib)和重新說明的頭文件(addit.h)加入到C++Builder應用程序的工程項目中,進行編譯和連接。 addit.dll按上述步驟操作,在VC++ 5.0 和C++Builder 3.0下通過。 |