delphi 在与项目相同的构建配置中拥有自己的库单元

yebdmbv4  于 2022-12-12  发布在  其他
关注(0)|答案(1)|浏览(111)

我如何设置 Delphi 库文件夹,以便在我处理项目时可以同时拥有单元库的Debug和Release版本?到目前为止,我在Release模式下编译了我的库。但是当我处理项目时,我遇到了这样的情况,即使在已编译的单元中,我也需要遵循调试步骤。但是如果它们被编译为Release,它不会允许我这样做。如果我将它们编译为Debug,它把调试代码放在项目的发布版本中,这是不正常的。我希望当我在我的项目中在Debug和Release之间切换时,单元也会切换。这能做到吗?如果我把Debug和Releas文件夹都放在 Delphi 库路径中,它会知道什么时候选择正确的文件夹?

tp5buhyn

tp5buhyn1#

我终于明白了它是怎么运作的:密钥是$(Platform)$(Config)
我制作了一个测试单元,其中包含一个函数,该函数可以告诉我正在使用什么配置:

unit Test;

interface

function GetConfig: String;

implementation

function GetConfig: String;
begin
 {$IFDEF RELEASE} Result:= 'Release'; {$ENDIF}
 {$IFDEF DEBUG} Result:= 'Debug'; {$ENDIF}
end;

end.

我在调试和发布模式下编译了它,并将.dcu文件保存在D:\Delphi\MyLIB\Win32 \Release和\Debug中。将.pas文件保存在D:\Delphi\MySRC中。然后我转到工具〉选项〉语言〉Delphi〉库,并将D:\Delphi\MyLIB\$(Platform)\$(Config)添加到库路径部分,将“D:\Delphy\MySRC”添加到浏览路径。
现在,如果我创建一个新项目并使用该单元,根据Buid Configuration选择正确的版本。如果我切换到Debug并在该函数上执行Trace Into (F7),我可以在其中进行调试。

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Test;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 Caption:= GetConfig;
end;

end.

感谢Oleksandr Morozevych评论!

相关问题