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

有帮助吗?

解决方案

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

例如

{$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对条件定义有帮助:

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

其他提示

如果它们与众不同,那么它们实际上就不再是共享文件了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top