Domanda

Va bene, così ho 2 progetti per un gioco. Uno è il server e uno è il cliente. Tengo le unità condivise in una cartella condivisa che uso per includere nel mio progetto client / server. C'è un problema però: ho un file condiviso che ha bisogno di un file diverso per il client / server. Esempio: mySharedLib deve stampare alla console, ma la console client / server è diverso. Quali sono le opzioni? Grazie

È stato utile?

Soluzione

Nel file condiviso si potrebbe usare definire compilatore direttiva

Ad esempio

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

Poi, nel tuo progetto di server definire una MYSERVER definire e nel client di definire una MYCLIENT uno, poi, quando le separa codice condiviso utilizzare un'istruzione {$ IFDEF).

Delphi aiuto su definizioni condizionali:

  

Le direttive condizionali $ IFDEF, $ IFNDEF, $ IF, $ ELSEIF, ELSE $, $ ENDIF, e $ IfEnd permettono di compilare o il codice di sopprimere in base allo stato di un simbolo condizionale. $ IF e $ ELSEIF consentono di basare compilazione condizionale su identificatori di Delphi dichiarati. $ Compila IFOPT o evita di codice a seconda che uno switch del compilatore specificato è abilitato.

In questo modo, tuttavia, non funziona se il codice condiviso è in una DLL o di qualsiasi altro tipo di risorsa condivisa conformato come un pacchetto.

Delphi aiuto su definizioni condizionali:

  

Definizioni condizionali vengono valutate solo quando il codice sorgente viene ricompilato. Se si modifica lo stato di un simbolo condizionale e quindi rigenerare un progetto, il codice sorgente in unità invariato, non può essere ricompilato. Utilizzare Project | costruire tutti i progetti per assicurare che tutto nel progetto riflette lo stato attuale dei simboli condizionali.

Altri suggerimenti

Se sono diversi, non sono in realtà un file condiviso più.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top