Bonjour à tous,

Débutant en programmation Borland C++, je souhaiterais pouvoir gérer l'ouverture d'une (autre) TForm à partir de la TForm principale à l'aide d'une DLL. Je m'explique :

Dans un premier temps, considérons un fichier main.cpp associé à une TForm nommée TFmain et qui contient plusieurs variables. A partir de cette TFmain, je souhaiterais ouvrir, à l'aide d'un bouton, une autre TForm que j'appelle TFsecond et associée au fichier sec.cpp tout en conservant en mémoire l'ensemble des variables gérées par main.cpp. En d'autre termes, une fois TFmain et ses variables initialisées, je souhaite conserver l'ensemble de ces variables tels quels lorsque je clique sur le bouton (qui fait apparaître TFsec) de façon à ce que des opérations soient effectuées dans TFsec sur les variables d'origine.
La solution de ce problème est assez simple puisqu'il suffit de déclarer l'ensemble des variables qui doivent être actives dans TFmain et TFsec sous forme extern puis de "lier" les deux TForm grâce au code suivant qui doit être inclus dans le fastcall associé au bouton :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
TFsec *F = new TFsec(this) ;
F -> show();
Dans un deuxième temps, je souhaite transposer et regrouper le contenu de TFsec (muni du fichier sec.cpp) au sein d'une DLL. Après avoir suivi à la lettre les instructions de LFE (que je remercie pour son exposé) pour créer et utiliser une DLL, j'arrive donc à créer la TFsec sous forme DLL. Le code d'initialisation de TFsec dans le fichier DLL est donc :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
int __stdcall LoadForm()
{
    TFsec *Fsec;
 
    Fsec = new TSecForm(NULL);
    Fsec->ShowModal();
    delete Fsec;
    return 1;
}
Le problème, c'est que je ne sais pas comment passer des variables/paramètres pour finalement pouvoir utiliser cette TForm et faire des opérations sur ces variables avec. J'ai bien essayé la méthode de declaration extern mais j'obtiens un problème de liaison... Mon but serait en fait d'assimiler la DLL à une fonction qui créé une fenêtre, admet des variables en argument et renvoie ces variables éventuellement modifiées.

Je vous remercie pour votre aide.