好的,所以我有 2 个游戏项目。一个是服务器,一个是客户端。我将共享单元保存在一个共享文件夹中,用于包含在我的客户端/服务器项目中。但是有一个问题:我有一个共享文件,需要为客户端/服务器使用不同的文件。示例:mySharedLib 需要打印到控制台,但是客户端/服务器控制台不同。我有哪些选择?谢谢
问问题
112 次
2 回答
4
在您的共享文件中,您可以使用定义编译器指令
例如
{$IFDEF MYSERVER}
Writeln('Server'); // this code executes
{$ELSE}
Writeln('Client'); // this code does not execute
{$ENDIF}
然后在您的服务器项目中定义一个 MYSERVER 定义并在您的客户端中定义一个 MYCLIENT ,然后当共享代码分开时使用 {$IFDEF) 语句。
条件指令 $IFDEF、$IFNDEF、$IF、$ELSEIF、$ELSE、$ENDIF 和 $IFEND 允许您根据条件符号的状态编译或抑制代码。$IF 和 $ELSEIF 允许您基于声明的 Delphi 标识符进行条件编译。$IFOPT 根据是否启用了指定的编译器开关来编译或抑制代码。
但是,如果共享代码位于 DLL 或任何其他类型的已编译共享资源(例如包)中,这将不起作用。
仅在重新编译源代码时才评估条件定义。如果您更改条件符号的状态然后重新构建项目,则可能无法重新编译未更改单元的源代码。使用 Project|Build All Projects 确保项目中的所有内容都反映条件符号的当前状态。
于 2010-09-15T11:46:51.113 回答
1
如果它们不同,它们就不再是真正的共享文件。
于 2010-09-15T11:46:28.700 回答