Page 1 sur 1

Retourner une chaine de caractères par un fonction DLL ?

Publié : jeu. 31/août/2006 7:25
par brossden
La question est dans le titre.
Je commence à utiliser les dll dans l'espoir de pouvoir exploiter des routines PureBasic dans d'autres languages mais je ne sais pas s'il est possible de faire retourner une chaine de caractères dans une fonction DLL .

Merci à ceux qui sauront me répondre !!

Publié : jeu. 31/août/2006 7:49
par Progi1984
Il faut que tu renvoies une adresse mémiore avec PeekS dont tu tu retrouveras le contenu avec PokeS

Publié : jeu. 31/août/2006 8:18
par Flype
oui - il faut absolument utiliser PeekS() dans le code appelant ta dll.

Code : Tout sélectionner

;- code de la dll

ProcedureDLL.s MaFonction()
  
  ProcedureReturn MaChaine.s
  
EndProcedure

;- code appelant la dll

Procedure.s MaFonctionBis()
  
  ProcedureReturn PeekS(CallFunction(0, "MaFonction"))
  
EndProcedure

;-
c'est une des différences entre une userlib et une dll.
l'une est au format purebasic dont 'comprenant' les chaines de caractères et l'autre au format standard windows donc pas de gestion implicites des strings. Mais avec PeekS() cà reste très facile.

Publié : jeu. 31/août/2006 8:35
par brossden
Merci à tous

Mais j'ai trouvé pendant que vous aviez la gentillesse de me répondre !