2017-02-27 55 views
0

我需要调用FMX.Types中定义的Log.d。但是我的项目不是Firemonkey项目,而是一个VCL项目。它编译和按预期工作,但我收到这样的警告:如何在VCL项目中包含FMX.Types

[dcc64提示] H2161警告:重复的资源:类型12(CURSOR GROUP),ID 32761;文件c:\ program files (x86)\ embarcadero \ studio \ 18.0 \ lib \ Win64 \ release \ FMX.Controls.Win.res 资源保存;文件c:\ program files (x86)\ embarcadero \ studio \ 18.0 \ lib \ Win64 \ release \ Controls.res资源 丢弃。

是他们的任何全局定义,可能表明该项目是一个VCL项目,这样我可以省略在VCL项目上使用FMX.Types和Log.d

+0

问题是什么。你想检测该项目是FMX吗?或者你想将FMX单元包含在VCL项目中?你似乎问两个。请只问一个问题。 –

+0

任何论文!因为它们都是我的问题的解决方案。因此检测到项目是FMX(从项目中排除fmx单元) - 或者 - 在vcl项目中包含fmx单元的任何方式 – Vyacheslav

+1

请选择一个。你不能在一个问题中提出两个问题。为了帮助您挑选一个,我可以告诉您,没有条件将项目标识为FMX。 –

回答

2

要对我的评论扩充一点,您可以通过简单地“酝酿自己的”Log.d等价物来避开整个问题。 Log.d呼吁OutputDebugString在Windows上,这样你就可以建立大意如下的东西并离开FMX.Types辅助单元完全的方程,并完全避免的问题:

uses Windows; 

procedure Log(const Msg: string; const Args: array of const); overload; 
var 
    LMsg: string; 
begin 
    LMsg := Format(Msg, Args); 
    OutputDebugString(PChar(LMsg)); 
end; 

procedure Log(const Msg: string); overload; 
begin 
    OutputDebugString(PChar(Msg)); 
end; 
相关问题