C語言編譯成dll


首先c語言在開始要加上

#ifdef __cplusplus

extern "C" {

#endif

       …被導出的方法名稱

#ifdef __cplusplus

}

#endif

不然系統會將起當做c++,轉成的dll中的方法名稱會被轉義。在實現的方法名稱前面加上__declspec(dllexport)


1.    Gcc:gcc –shared -o xxxx.dll xxxx.c 可以直接將.c文件轉成dll文件。在實際引用中,我是將所有的#include都是放在.c文件中的,上述的注意代碼也是放在.c中的,他的頭文件是直接拋棄掉了。

2.    Vc創建一個c++的項目,文件-新建-新建項目-其他語言-Visual C++  - Win32 控制台應用程序;勾選DLL和導出符號,.c需要修改成.cpp,右鍵-屬性-預編譯頭-不使用預編譯頭,右擊項目“重新生成”。

1實地使用過確認可以使用,2未嘗試過但是在使用c++轉出dll是沒有問題的


在導出過程中我們可以使用vs自帶一個工具來查詢生成的dll中有那些方法,例如:

 

 

Vs安裝路徑下:C:\vs 2012\VC\bin\dumpbin.exe,可能會報一個缺少“mspdb110.dll”文件的錯誤,直接將安裝路徑下:C:\vs 2012\Common7\IDE下面的該文件復制粘貼到C:\vs 2012\VC\bin\下面。

用法是,先cd到dumpbin的路徑下,dumpbin –exports  xxxx.dll


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM