chaines et DLLs

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Thierry 31
Messages : 25
Inscription : mar. 08/févr./2005 21:44
Localisation : Toulouse

chaines et DLLs

Message par Thierry 31 »

je lis assidument, depuis qq mois, tout ce qui se rapporte à PB, je ne trouve malheureusement pas grand chose sur l'utilisation des DLLs. :cry:

si j'ai à priori, compris, la manière de les créer, de les appeler ect, je sèche depuis qq jours sur le retour par une DLL d'une chaine$ de caractères.

si une âme sensible peut se fendre de qq lignes de code par exemple une DLL qui retourne une chaine$ que lui envoie la procédure appelante: 3,4 lignes quoi :wink:

merci
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

Code : Tout sélectionner

If OpenLibrary(1,"ta_DLL.dll")
 *Result = CallFunction(1, "ta_fonction", "parametre") 
 Debug PeekS(*Result)
EndIf
c'est le PeekS(*Result) qui est important pour lire un retour d'une chaine de caractère.

En espèrant de t'avoir aidé
Thierry 31
Messages : 25
Inscription : mar. 08/févr./2005 21:44
Localisation : Toulouse

ce fut rapide

Message par Thierry 31 »

merci je vais essayer ça. :D

une autre question siouplé msieu à siouplé :?:

à quel moment et endroit faut'il déclarer la chaine$ retournée par la DLL comme globale (aide anglaise de la v3.92 vu sur purearea.net)?

dans le code de la DLL ? ou dans le code de la procédure principale?

merci d'avance
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

Tu n'as pas à déclarer de global dans ta prodecure (DLL), pour la chaine tu déclare comme ceci :

Code : Tout sélectionner

ProcedureDLL.s taprocedure()
.....
...
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

au début du code de ta dll, tout simplement.

en fait,on peut la mettre partout dans le code à condition que la varaibale $chaine ne soit pas utilisée avant le "Global $chaine" dans le code.
Donc le mieu est de le mettre au début pour éviter le problème.
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Thierry 31
Messages : 25
Inscription : mar. 08/févr./2005 21:44
Localisation : Toulouse

Message par Thierry 31 »

merci a tous les deux :D
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

Pour info, une var globale à la dll n'est accessible que par la dll comme toutes les variables déclarées dans la dll

en fait, il faut considére la dll et le programme comme 2 mondes distincts qui ne communiquent que par l'envoie d'info au procedure et la valeur de retour de la procedure
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Répondre