histoire de dll...

Programmation d'applications complexes
Avatar de l’utilisateur
Ulix
Messages : 315
Inscription : ven. 04/juin/2004 14:27
Localisation : Frontignan

histoire de dll...

Message par Ulix »

Je cherche a partagé une même structure entre un programme et une dll. Cette structure me servira, pour échanger des données du prog vers la dll et vis versa.
Donc il faudrait qu'après avoir affecter les valeurs aux différents élément de la structure, et avoir appeler la dll, recupérer (toujours dans la structure) les résultats... (j'espère que c'est clair... lol)

Quelqu'un aurait-il un exemple de code ? (allez siouplé)
Merci d'avance...
filperj
Messages : 395
Inscription : jeu. 22/janv./2004 1:13

Message par filperj »

Avec un pointeur structuré, peut-être?
(ça marche pareil si la proc est importée d'une DLL)

Code : Tout sélectionner

Structure mastruk
   entier.l
   chaine.s
   flottant.f
EndStructure

Procedure apointeur(*ptr.mastruk)
   *ptr\chaine=Str(*ptr\entier)
   *ptr\flottant=1/*ptr\entier
EndProcedure

DefType.mastruk unevariable

unevariable\entier=4
apointeur(@unevariable)
Debug unevariable\chaine
Debug unevariable\flottant
Tu pensais bien à ça ?
Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
filperj
Messages : 395
Inscription : jeu. 22/janv./2004 1:13

Message par filperj »

Et petite précision pasque c'est pas forcément évident du 1er coup:
"*ptr.mastruc" signifie que la variable "*ptr" (et non pas "ptr", c'est important) est un pointeur vers une structure de type mastruk, mais "*ptr" n'est pas structurée en elle-même, c'est juste un pointeur (qui contient juste une addresse).
"@unevariable" signifie qu'on passe l'adresse de la variable au lieu de la variable elle-même.
Voilà, j'espère que ça aide un peu...
Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
Avatar de l’utilisateur
Ulix
Messages : 315
Inscription : ven. 04/juin/2004 14:27
Localisation : Frontignan

Message par Ulix »

Merci pour le conseil, Je vais essayer ! :lol:
Répondre