Bonjour,
Je souhaite créé un package BPL avec une fonction à appeler dynamiquement dans un autre programme C++.
Comment faire ceci avec c++ builder ?
J'y arrive en delphi, d'ailleurs l'exemple ici est simple : http://www.jcolibri.com/articles/pro...es_delphi.html
Quel est l'équivalent du mot clé delphi "exports" en c++ ?
J'ai essayé le code ci-dessous mais il ne fonctionne pas en compilant le package (uniquement si je crée explicitement une DLL).
J'ai des erreurs de link.
[ilink32 Erreur] Error: '__tpdsc__ Fmx::Forms::TForm' externe non résolu, référencé depuis C:\TEST\UNIT1.OBJ
...
...
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
27
28
29
30
31
32 //--------------------------------------------------------------------------- #ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #include <System.Classes.hpp> #include <FMX.Controls.hpp> #include <FMX.Forms.hpp> #include <FMX.Controls.Presentation.hpp> #include <FMX.StdCtrls.hpp> #include <FMX.Types.hpp> //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // Composants gérés par l'EDI TLabel *Label1; TLabel *Label2; TButton *Button1; void __fastcall Button1Click(TObject *Sender); private: // Déclarations utilisateur public: // Déclarations utilisateur __fastcall TForm1(TComponent* Owner); }; extern "C" __declspec(dllexport) void AppelEcran(); //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endifMerci
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
27
28
29
30 //--------------------------------------------------------------------------- #include <fmx.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.fmx" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void AppelEcran() { Form1 = new TForm1(NULL); Form1->ShowModal(); delete Form1; } //--------------------------------------------------------------------------
Partager