Bonjour,
j'ai parcouru toute la recherche mais malheureusement je n'ai pas trouvé de réponse à ma question.
J'utilise Borland c++ 2007 .
J'ai deux projets.
1°) Projet DLL :
J'ai fais fichier-nouveau- DLL
Il m'a créé un fichier .cpp . J'ai fais Fichier-Nouveau-Fiche . Un deuxième CPP s'est ouvert où j'ai placé un Bouton dessus. J'ai créé un événement Onclick sur le bouton .
Dans le Header du deuxième CPP j'ai placé tout en haut :
Et j'ai remplacé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 #ifdef __DLL__ #define IMPORT_EXPORT __declspec(dllexport) #else #define IMPORT_EXPORT __declspec(dllimport) #endif
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part Class TFXXXX : public TForm
En résumé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part IMPORT_EXPORT class TFXXXX
Malheureusement Je n'ai pas pu remplacer les __fastcall par du __stdcall
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 #ifdef __DLL__ #define IMPORT_EXPORT __declspec(dllexport) #else #define IMPORT_EXPORT __declspec(dllimport) #endif #ifndef ps_classH #define ps_classH //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> IMPORT_EXPORT class TFXXXX : public TForm { __published: // Composants gérés par l'EDI TButton *Button1; void __fastcall Button1Click(TObject *Sender); private: // Déclarations utilisateur public: // Déclarations utilisateur __fastcall TFXXXX (TComponent* Owner); }; #endif
J'ai compilé, il m'a généré deux fichiers : Lib et DLL
2°) Projet EXE
J'ai créé un simple projet EXE. QUi fonctionne et qui n'affiche qu'une FORM vide.
J'ai ajouté le fichier lib dans le projet
J'ai copié le fichier DLL dans le même répertoire que l'EXE
J'ai inclus le fichier .H du DLL pour que les class soient reconnues
Ensuite dans le CPP du projet j'ai créé un événement onclick d'un bouton placé par après qui contient le code suivant :
Je compile
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 TFXXXX*FXXXX; FXXXX= new TFXXXX(this);
Hélàs : erreur :
LINK32 Erreur : 'TFXXXX::' externe non résolu, référencé depuis .....obj
Je suis à court d'idée. Je ne vois pas d'autre solution que de vous demander.
Je vous remercie d'avance
Partager