2017-08-28 21 views
0

我有Delphi西雅圖,當我將項目源文件中的「程序」關鍵字更改爲「庫」,並編譯/運行時,它會生成一個exe文件。這是正常的嗎?在delphi的舊版本中,它會自動生成一個DLL,而不是一個exe擴展名。在Delphi中編譯一個庫會產生一個exe擴展名,這是正確的嗎?

解決方案是更改某些編譯器選項或項目選項設置?有一個輸出文件擴展名設置,但我認爲只要將「程序」更改爲「庫」,編譯器就會自動處理該問題。在舊的德爾福5它的工作。

這可能會影響其他版本不僅僅是西雅圖,沒試過......

這是一個錯誤?

+0

您必須在項目設置中更改項目類型。 – ViRuSTriNiTy

+0

通常,它會生成'.dll'擴展名,就像在舊版本中一樣。你的設置中的某些東西必須改變它。現在,如果您將其作爲普通程序啓動,然後**將代碼更改爲'library',則代碼可能不會更改。你應該首先作爲圖書館開始。 –

+0

爲什麼不創建一個新的項目「庫」,幷包含你的文件?我想你從一個程序開始測試你創建的代碼? –

回答

0

的可執行文件擴展名是設置傳遞到編譯器的一個項目,但如果你想從源頭控制它,還有的$E compiler directive

0

如果你啓動一個項目作爲DLL,則使用庫中的模板(一與長期警告評論),並自動獲得擴展.dll

但是,如果您作爲普通程序(例如控制檯程序)啓動項目,則擴展名爲.exe,如果將關鍵字program更改爲library,則不會自動更改。我認爲它在任何早期的Delphi中都沒有這樣做。

因此,要獲得一個默認.dll擴展,使用

文件→新→其他... →德爾福項目→動態鏈接庫

前面已經說過,您可以更改項目擴展選項太:

項目→個選項... →應用→輸出設置→目標文件的擴展名

或簡稱爲{$E DLL}在源代碼。

+0

謝謝, - 如果我只更改擴展名,編譯器是否足夠聰明,可以實際將它編譯爲DLL,或者是否將它作爲僅包含不同擴展名的Exe格式編譯......因爲這可能很重要。即如果它只是僞裝成一個DLL,但實際上只是擴展名爲dll的exe。 –

相關問題