Y compris les fichiers client pour fichier partagé
Question
Ok, donc j'ai 2 projets pour un jeu. L'un est le serveur et l'autre est le client. Je garde les unités partagées dans un dossier partagé que j'utiliser pour inclure dans mon projet client / serveur. Il y a un problème cependant: j'ai un fichier partagé qui a besoin d'un fichier différent pour le client / serveur. Exemple: mySharedLib a besoin d'imprimer sur la console, mais la console client / serveur est différent. Quelles sont mes options? Merci
La solution
Dans votre fichier partagé vous pouvez utiliser définir directive compilateur
Par exemple
{$IFDEF MYSERVER}
Writeln('Server'); // this code executes
{$ELSE}
Writeln('Client'); // this code does not execute
{$ENDIF}
Ensuite, dans votre projet de serveur définir un MYSERVER définir et dans votre client de définir un myclient, puis lorsque le partage de code seperates utiliser une instruction {IFDEF $).
De Delphi aide sur les définitions conditionnelles:
Les directives conditionnelles IFDEF $, $ IFNDEF, $ SI, SINON $, $ ELSE, $ ENDIF et $ IFEND vous permettent d'établir ou un code de suppression en fonction de l'état d'un symbole conditionnel. $ IF et $ ELSEIF vous permettent de baser la compilation conditionnelle sur les identificateurs Delphi déclarés. $ Compilable IFOPT ou supprime le code selon que le commutateur de compilateur spécifié est activé.
Cela ne fonctionnera pas si le code partagé est dans une DLL ou tout autre type de ressource partagée respecté comme un paquet.
De Delphi aide sur les définitions conditionnelles:
Définitions conditionnelles sont évaluées seulement lorsque le code source est recompilé. Si vous modifiez un statut de symbole conditionnel, puis reconstruire un projet, le code source en unités inchangées peut ne pas être recompilé. Utilisation du projet | Construire tous les projets pour assurer que tout dans votre projet reflète l'état actuel des symboles conditionnels.
Autres conseils
Si elles sont différentes, ils ne sont pas vraiment un fichier partagé plus.