Pregunta

Está bien, así que tengo 2 proyectos para un juego. Uno de ellos es el servidor y uno es el cliente. Guardo las unidades compartidas en una carpeta compartida que utilizo para incluir en mi proyecto de cliente / servidor. Hay un problema, sin embargo: Tengo un archivo compartido que necesita un archivo diferente para el cliente / servidor. Ejemplo: mySharedLib necesita para imprimir en la consola, sin embargo, la consola de cliente / servidor es diferente. ¿Cuáles son mis opciones? Gracias

¿Fue útil?

Solución

En el archivo compartido que podría utilizar definir compilador Directiva

Por ejemplo

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

A continuación, en su proyecto de servidor definir un MISERVIDOR definir y en su cliente de definir una MyClient, a continuación, cuando los seperates código compartido utilizan un comunicado {$ IFDEF).

Desde el Delphi ayuda en las definiciones condicionales:

Las directivas condicionales $ IFDEF, IFNDEF $, $ IF, $ ELSEIF, ELSE $, $ ENDIF, y $ IfEnd permitirá compilar código o suprimir basado en el estado de un símbolo condicional. $ $ IF y ELSEIF le permiten basar la compilación condicional en identificadores declarados Delphi. $ Compila IFOPT o suprime código dependiendo de si un modificador de compilador especificada está habilitada.

Esto sin embargo no funciona si el código compartido se encuentra en una DLL o cualquier otro tipo de recurso compartido cumplido tales como un paquete.

Desde el Delphi ayuda en las definiciones condicionales:

Definiciones condicionales se evalúan sólo cuando se vuelve a compilar el código fuente. Si cambia el estado de un símbolo condicional y luego vuelve a generar un proyecto, el código fuente en unidades sin cambios, no puede volver a compilar. Uso de proyecto | Generar Todos los proyectos para asegurar que todo en su proyecto refleja el estado actual de símbolos condicionales.

Otros consejos

Si son diferentes, no son realmente un archivo compartido más.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top