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

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

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

Message 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 !!
Denis

Bonne Jounée à tous
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Il faut que tu renvoies une adresse mémiore avec PeekS dont tu tu retrouveras le contenu avec PokeS
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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.
Image
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Merci à tous

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

Bonne Jounée à tous
Répondre