2014-12-03 88 views
0

我有一些C代碼需要在Delphi應用程序中使用。使用cmake,我可以在Visual Studio 2012中生成一個將其編譯成DLL的解決方案。對於所有的功能,用Delphi編寫所有的導入單元需要花費一天又一天的時間。有一個工具可以用來將DLL .h文件轉換爲pascal導入單元,但Visual Studio不會爲DLL提供.h文件。在Visual Studio 2012中生成一個.h文件以及DLL

所以我有哪些選擇?:

  1. 我一定要他們走,並從.c文件得到所有的.h文件並編譯成一個文件自己?
  2. 有沒有辦法讓Visual Studio在編譯期間爲DLL生成一個.h文件?
  3. 還有什麼我可以嘗試將DLL轉換爲Delphi在其他應用程序中使用?

在此先感謝您的幫助或許能提供幫助。

回答

1

通常情況下,C代碼的開發人員也會生成一個頭文件。你知道爲什麼沒有一個?或者你也許還沒有找到它。

你不會找到一個好的工具來爲你製作頭文件。無論如何,你不需要頭文件。你想要一個Pascal導入文件。即使你有一個頭文件,也沒有好的工具從那裏轉換成Pascal導入文件。有些工具可以嘗試這項工作,但我的經驗是他們工作不好。

如果C代碼有額外的註釋,它們只能很好地工作,而且它們很少這樣做。例如,如何把這個翻譯:

int foo(int, int*); 

是在int*參數標量或數組?如果前者,參數是可選的? NULL可以通過嗎?如果是後者,陣列有多長?基本的頭文件不提供完整的規範。

我想說最好的行動方式是手動編寫Pascal導入代碼。如果有很多重複,那麼你可以編寫自己的小工具來幫助。無論如何,我總是這樣做。

+0

每個.c文件都有.h文件,但將它們編譯在一起並使它們適應DLL的工作將成爲一項使命。沒有辦法將代碼編譯爲Delphi導入組件嚮導可以理解的東西嗎? – Erik 2014-12-04 07:40:21

+0

我想我已經回答了。感覺就像你沒有讀到答案。你想要一個頭文件? Delphi會用它來做什麼?你需要打幾個功能?當你問這個問題時,如果你開始工作,你現在肯定會完成。 – 2014-12-04 08:27:19

+0

我可以繼續前進,並開始全部手工完成,但有很多功能,大概在100或更多。此外,還有許多複雜的數據類型也需要轉換。 – Erik 2014-12-05 09:42:33

相關問題