簡體   English   中英

編譯器指令-Delphi版本

[英]Compiler Directives - Delphi Versions

我有一段時間前在Delphi 7中編寫的單元,並且剛剛經歷了轉換為Delphi XE(Unicode)的樂趣(痛苦)。

遇到一些麻煩后,該單元可以正常工作,如果需要在更新一些其他代碼的同時將IDE切換回Delphi 7,我現在試圖使該單元與其他Delphi版本兼容。

我只有Delphi 7和Delphi XE,但是從我收集的Delphi 1到Delphi 2007的代碼中可以編譯,但是從Delphi 2009及更高版本開始的代碼將是Unicode。

...無論如何,我在單元中將非unicode和unicode分開,如下所示:

{$IFDEF VER150} //Delphi 7
// code
{$ELSE IFDEF VER220} //Delphi XE
// code
{$ENDIF}

如何修改編譯器指令,使規則適用於多個版本? 例如:

{$IFDEF VER80,  //D1
        VER90,  //D2
        VER100, //D3
        VER120, //D4
        VER130, //D5
        VER140, //D6
        VER150, //D7}

如果我分發源代碼或.dcu單元,那么它將涵蓋所有Delphi版本。

謝謝。

我想知道在這種情況下最簡單的方法是否是在有條件的UNICODE上切換行為。 僅當您使用Unicode版本的Delphi(即在Delphi 2009及更高版本中)時,才定義此條件。 這樣做的最大好處是,它是面向未來的證明-您無需在每次發布新的Delphi時都更新代碼。 而且,條件開關將清楚地表達其意圖,因此可讀性更高。

Delphi文檔有一個出色的主題,列出了所有預定義的條件。 版本條件的完整列表也從此處鏈接

最好的選擇實際上是查看許多JEDI項目之一,例如http://sourceforge.net/projects/jedi-apilib/並查看其工作方式。 它們具有包含准確包含您感興趣的詳細信息的公共包含文件。JVCL是另一個不錯的選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM