Dan's Orbiter page

Orbiter Francophone => Création Orbiter Francophone => Topic started by: laserpithium on 21 June 2006, 18:37:56

Title: Question de C++
Post by: laserpithium on 21 June 2006, 18:37:56
Je voudrais savoir si c'est possible de faire la chose suivante:
- Je crée un vaisseau (nommé A), codé par la dll A.dll. Ce vaisseau est présent dans la simulation
- Dans cette dll, j'ai une fonction maFunction()
- Je suis dans un vaisseau quelconque (par exemple le DGIII), et j'ouvre un MFD.
- Question: est-il possible d'appeller, depuis la MFD ouverte dans le DGIII, la fonction maFunction() présente dans la dll du
vaisseau A ?

Un truc du genre:
A->maFunction().

est-ce que ça marche ou pas ?

Title: Re: Question de C++
Post by: DanSteph on 21 June 2006, 20:34:35
Oui c'est assez compliqué, c'est ce que fait la SDK d'OrbiterSound
qui depuis la DLL d'un vaisseau appelle des fonctions de la DLL
orbitersound.

Dan
Title: Re: Question de C++
Post by: laserpithium on 21 June 2006, 21:05:26
Génial !

Tu codes comment par contre ?
- Est ce que la fonction dans le dll du vaisseau doit avoir des attributs particuliers ?
- Comment tu appelles cette fonction depuis la dll du MFD ? Juste en faisant monVaisseau->maFonction() ?

Merci Dan !

Title: Re: Question de C++
Post by: DanSteph on 21 June 2006, 21:06:26
Je te donne ca plus tard le code est sur mon autre PC...

A++

Dan
Title: Re: Question de C++
Post by: laserpithium on 21 June 2006, 21:20:07
Merci Dan, parce que là je bloque complet...

Title: Re: Question de C++
Post by: DanSteph on 22 June 2006, 02:57:48
Regarde du coté de "GetProcAddress" et "dllexport"
si tu googlise tu trouvera des bout de codes exemples.

A++

Dan
Title: Re: Question de C++
Post by: laserpithium on 23 June 2006, 23:02:55
Salut Dan,

Bon, j'ai un peu tout remis à plat, et du coup c'est beaucoup plus simple.
Je n'ai plus qu'à réaliser le truc suivant:
- J'ai une dll pour un vaisseau (monVaisseau.dll)
- J'ai une dll pour une MFD (maMFD.dll)
J'ai une variable (type int) déclarée et initialisée dans maMFD.dll. Je souhaite pouvoir à tout instant passer la valeur de
cette variable à monVaisseau.dll.

Est-ce qu'il me suffit de déclarer en dllexport maVariable dans maMFD.dll, où il faut faire quelque chose de plus compliqué ?

Merci Dan !

Title: Re: Question de C++
Post by: laserpithium on 24 June 2006, 18:47:08
C'est bon, j'ai trouvé !