2010-02-16 3 views
0

i Tous,placer Indy TIdTCPClient dans un paquet non-visuel

J'essaie de se TIdTCPClient à courir dans mon composant non visuel. Ajouter ce qui suit à mon fichier .h:

#include "IdBaseComponent.hpp" 
#include "IdComponent.hpp" 
#include "IdTCPClient.hpp" 
#include "IdTCPConnection.hpp" 
... 
private: 
    TIdTCPClient *mTCPClient; 

Tout compile bien, mais bien sûr, Indy ne sont pas inclus dans la construction encore.

Je le fais dans mon fichier .cpp:

#pragma link "IdBaseComponent" 
#pragma link "IdComponent" 
#pragma link "IdTCPClient" 
#pragma link "IdTCPConnection" 
... 
mTCPClient = new TIdTCPClient(NULL); 

lors de la compilation je reçois:

[ILINK32 Error] Fatal: Unable to open file 'IDBASECOMPONENT.OBJ' 

Tout cela fonctionne si je laisse tomber juste le composant sur une forme, les mêmes lignes sont ajouté comme je l'ajoute manuellement dans mon composant (sauf le nouveau) et tout compile bien. Je ne peux pas comprendre.

Merci

Répondre

2

Avez-vous essayé d'ajouter le package Indy à votre Nécessite la section, il suffit d'ajouter les fichiers .BPI requis à partir du dossier lib dans le chemin d'installation CodeGear.

Vous pouvez le faire par le menu Projet:

Projet>Ajouter au projet ... (Maj + F11)> Nécessite>Parcourir ...

Trouver les fichiers Indy*.bpi dans lib \ Debug ou lib \ Release et ajoutez les requis à votre projet.

+0

J'ai fini par ajouter #pragma link "IndyCore.bpi" dans le fichier .cpp et cela a fonctionné. Semble avoir la même lib pour les versions release et debug à partir de $ (BDS) \ lib. Bien sûr, vous obtenez la version finale, donc votre chemin est meilleur. –