閱讀438 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Win32 DLL相關操作

定義導出函數

 

//方法1:

_declspec(dllexport) int Add(int a, int b);//此時會發生函數名字改編

//如果不想改編,可以使用extern "C"

extern "C" _declspec(dllexport) int Add(int a, int b);

 

//方法2:

//使用模塊定義文件def,“;”為注釋行

 

; Win32Dll.def: 導出DLL函數

LIBRARY "Win32Dll"                          ;Dll的名稱

;DESRIPTION "實現一個Win32 DLL"   ;Dll的描述

EXPORTS

Add             ;函數名

Sub             ;函數名

 

 

 

DLL的調用

1、動態調用(顯式調用)

     相關函數:LoadLibrary、FreeLibrary、GetProcAddress

 

2、靜態調用(隱式調用)

     (1)需要在調用程序中加入#pragma comment(lib, "name.dll");或者在“工程”->“設置”->“Link”項,輸入name.dll

     (2)在調用程序中聲明導入函數:extern "C" _declspec(dllimport) int Add(int a, int b);

 

windows係統搜索DLL的路徑順序:

1、exe文件的目錄

2、進程的當前工作目錄

3、Windows係統目錄System32

4、Windows目錄

5、path環境變量

最後更新:2017-04-02 06:51:35

  上一篇:go 堆棧解析算術表達式
  下一篇:go 指針常量和常量指針