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

ruarlubt  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(140)

好的,所以我有2个项目的游戏。一个是服务器,一个是客户端。我把共享单元到一个共享文件夹,我用来包括在我的客户端/服务器项目。然而,有一个问题:我有一个共享文件,需要一个不同的文件的客户端/服务器。例如:mySharedLib需要打印到控制台,但客户端/服务器控制台是不同的。我的选择是什么?谢谢

xriantvc

xriantvc1#

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

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

字符串
然后在你的服务器项目中定义一个MYSERVER定义,在你的客户端中定义一个MYCLIENT,然后当共享代码分离时使用一个{$IFDEF)语句。
关于Delphi help on conditional definitions:
条件指令$IFDEF、$IFNDEF、$IF、$ELSEIF、$ELSE、$ENDIF和$IFEND允许您根据条件符号的状态编译或隐藏代码。$IF和$ELSEIF允许您根据声明的 Delphi 标识符进行条件编译。$IFOPT根据是否启用指定的编译器开关编译或隐藏代码。
但是,如果共享代码位于DLL或任何其他类型的已编译共享资源(如包)中,则这将不起作用。
关于Delphi help on conditional definitions:
仅当重新编译源代码时才计算条件定义。如果更改条件符号的状态,然后重新生成项目,则可能不会重新编译单元未更改的源代码。使用项目|“生成所有项目”可确保项目中的所有内容反映条件符号的当前状态。

pkbketx9

pkbketx92#

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

相关问题