dll中匯出函式的宣告有兩種方式:一種為在函式宣告中加上__declspec(dllexport),這裡不再舉例說明;另外一種方式是採用模組定義(.def) 檔案宣告,.def檔案為鏈結器提供了有關被鏈結程式的匯出、屬性及其他方面的資訊。
首先建立 乙個dll程式,.cpp中
int __stdcall add(int numa, int numb)
int __stdcall sub(int numa, int numb)
然後建立乙個.def的檔案,在裡面加上
using namespace std;
typedef int (__stdcall *fun)(int, int);
hinstance hinstance;
fun fun;
int main()
cout << fun(1, 2) << endl;
freelibrary(hinstance);
return 0;
}說明:
.def檔案的規則為:
(1)library語句說明.def檔案相應的dll;
(2)exports語句後列出要匯出函式的名稱。可以在.def檔案中的匯出函式名後加@n,表示要匯出函式的序號為n(在進行函式呼叫時,這個序號將發揮其作用);
(3).def 檔案中的注釋由每個注釋行開始處的分號 (;) 指定,且注釋不能與語句共享一行。
檢視Dll介面
vs2010裡vcvarsall.bat是在d program files x86 microsoft visual studio 10.0 vc目錄下,執行方法是直接將vcvarsall.bat檔案拖入命令列視窗,然後回車。拖入相當於在命令列中輸入 d program files x86 micr...
dll匯出介面
最近做了乙個dll,我使用是c方式匯出的,但是在定義介面的時候使用了c 中的string,導致我的debug的exe呼叫不了 release的dll,後來我使用了c風格的字串,結果成功匯出,並且debug的exe成功的呼叫了release的dll。在編譯的時候,編譯器給出過警告,說我匯出的介面與c風...
C 介面 介面定義
介面用來描述一種程式的規定,介面描述可屬於任何類或結構的一組相關行為。實現介面的類或結構要與介面的定義嚴格一致。介面可由方法 屬性 事件 索引器或這4種成員型別的任何組合構成。介面不能包含字段。介面成員一定是公共的。定義介面的語法如下 訪問修飾符 inte ce 介面名 下面定義乙個開關的介面,如下...