包括共享文件的客户端文件

问题描述 投票:0回答:2

好的,我有 2 个游戏项目。一种是服务器,一种是客户端。我将共享单元保存到一个共享文件夹中,用于将其包含在我的客户端/服务器项目中。但是存在一个问题:我有一个共享文件,需要为客户端/服务器使用不同的文件。示例:mySharedLib 需要打印到控制台,但是客户端/服务器控制台是不同的。我有什么选择?谢谢

delphi include shared
2个回答
4
投票

在共享文件中,您可以使用 define 编译器指令

例如

{$IFDEF MYSERVER}
    Writeln('Server');  // this code executes
{$ELSE}
    Writeln('Client');  // this code does not execute
{$ENDIF}

然后在您的服务器项目中定义一个 MYSERVER 定义,并在您的客户端中定义一个 MYCLIENT 一个,然后在共享代码分开时使用 {$IFDEF) 语句。

来自 Delphi 关于条件定义的帮助:

条件指令 $IFDEF、$IFNDEF、$IF、$ELSEIF、$ELSE、$ENDIF 和 $IFEND 允许您根据条件符号的状态编译或抑制代码。 $IF 和 $ELSEIF 允许您基于声明的 Delphi 标识符进行条件编译。 $IFOPT 根据是否启用指定的编译器开关来编译或抑制代码。

但是,如果共享代码位于 DLL 或任何其他类型的编译共享资源(例如包)中,则这将不起作用。

来自 Delphi 关于条件定义的帮助:

仅在重新编译源代码时才会评估条件定义。如果更改条件符号的状态,然后重建项目,则可能无法重新编译未更改单元的源代码。使用项目|构建所有项目可确保项目中的所有内容都反映条件符号的当前状态。


1
投票

如果它们不同,那么它们就不再是真正的共享文件。

© www.soinside.com 2019 - 2024. All rights reserved.