在c++編譯器中的dll導出c!

 C風格的DLL導出函數的典型方法說到底,DLL是對應C語言的動態鏈接技術,在輸出C函數和變量時顯得方便快捷
所以寫DLL文件最典型的一種Case:不用C++的類而都是C風格的代碼
這種情況要導出函數,有兩種方式:

第一種:函數前加相應修飾符

#ifdef __cplusplus 
#define EXPORT extern "C" __declspec (dllexport)
#else
#define EXPORT __declspec (dllexport)
#endif

然後在每一個要導出的函數前面加EXPORT

EXPORT標識符包括儲存方式限定詞__declspec(dllexport)以及在表頭文件按C++模式編譯時附加的「C」。因爲C++編譯器會將函數的名字改變,從而導致導出函數名稱變化,用extern "C"就是爲了防止這個。C編譯器無此問題。

第二種:用def文件

LIBRARY MyDll 
EXPORTS 
Max 
Min

其中LIBRARY語句說明該def文件是屬於相應DLL的,EXPORTS語句下列出要導出的函數名稱。我們可以在.def文件中的導出函數後加@n,如Max@1,Min@2,表示要導出的函數順序號,在進行顯式連時可以用到它。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章