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

时间:2010-09-15 11:33:08

标签: delphi include shared uses

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

2 个答案:

答案 0 :(得分:4)

在共享文件中,您可以使用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:

  

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

答案 1 :(得分:1)

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