相信用vs2005編譯寫.dll的工程的人一定對.def檔案不陌生吧,.def檔案是描述哪些要被導出來的函數。
格式如下:
library cmpnt2 -->dll名稱
exports -------->導出函數的标記符
dll_function_1 -->被導出的函數名稱
dll_function_2
..................
在我們的dll工程裡添加好.def檔案後程式設計,生成dll檔案。
現在我們,打開調試工具"開始"->"microsoft visual studio 2005"->"visual studio tools"->"visual studio 2005 command prompt"在視窗輸入dumpbin -exports xxx.dll 檢視導出哪些函數被導出。
如:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0ATN0AjNyIjM1ITNwMTMwIzLcRXZu5ibkN3Yuc2bsJmLn1Wavw1LcpDc0RHaiojIsJye.jpg)
結果發現沒有導出任何函數來。這是為什麼呢?
經過一番的折騰,才發現雖然我們把.def檔案添加在工程裡,但是那個檔案根本就沒有被編譯。這時,我們還需要做一個事情是。在工程屬性裡,"linker"->"input"->"module definition file"加入.def檔案名稱,重新編譯一下工程。
再次檢視一下輸出如下: