如果我有用C/C++編寫的庫的源代碼(可以說它的libxml2),現在我想構建它,並將其鏈接到delphi應用程序中......我知道這是可能的,因爲Delphi Zlib可以它(http://www.dellapasqua.com/delphizlib/)...但我的問題是,如何準備這些.obj文件?構建C/C++庫,將其鏈接到delphi應用程序...如何?
在此先感謝 米。
如果我有用C/C++編寫的庫的源代碼(可以說它的libxml2),現在我想構建它,並將其鏈接到delphi應用程序中......我知道這是可能的,因爲Delphi Zlib可以它(http://www.dellapasqua.com/delphizlib/)...但我的問題是,如何準備這些.obj文件?構建C/C++庫,將其鏈接到delphi應用程序...如何?
在此先感謝 米。
您需要使用CodeGear的C++編譯器爲Delphi生成兼容的obj文件。你的Delphi是否帶有C++ Builder?否則,您可以嘗試free (Borland) commandline version。閱讀更多關於這個問題here。
如果您創建了一個遵循C應用程序二進制接口(ABI)的dll,則可以從C++或Delphi應用程序動態鏈接到該應用程序。
這是可取的,你做了以下幾點:只有
#ifdef __cplusplus
extern "C"
{
//header file
}
#endif //__cplusplus
這保證了模塊代碼編譯成C ABI
最好是使功能__stdcall
編譯功能作爲DLL
從這裏你應該能夠以同樣的方式,德爾福可以鏈接到任何Windows DLL鏈接到DLL 。 (我不記得從德爾福方面需要做什麼)
我已經閱讀過那篇文章。然而,這不包括解決C標準庫依賴關係的主題,我不認爲有可能重新實現諸如open,read,recv,memcpy等這麼多的C標準函數......我相信還有更好的解決方案比一位作者所提出的要好。 – migajek
也許最好是用這個新信息更新你的問題。或者詢問關於這個特定問題的新問題。 –
來自Allen的文章的提示:將crtl.dcu添加到您的項目中以解決核心C RTL鏈接問題。 –