Re: Import lib ou OpenLibrary
Publié : mar. 03/nov./2009 14:13
Merci CHAOS de tes eclaircissements 

Code : Tout sélectionner
#ExampleStringToReturn$ = "Kwai you idiot!"
ProcedureDLL.i GetString(*buffer)
If *buffer
PokeS(*buffer, #ExampleStringToReturn$)
EndIf
ProcedureReturn Len(#ExampleStringToReturn$)
EndProcedure
Code : Tout sélectionner
Import "GetString.lib"
GetString(a.i=0) As "_GetString@4"
EndImport
;Get the required buffers size.
numCharacters = GetString()
;Retrieve the string.
a$ = Space(numCharacters)
GetString(@a$)
Debug a$
Oula oulala !!!!Fred a écrit :Les strings sont propres à PureBasic, alors qu'une DLL est faite pour etre utilisée par n'importe quel langage. Donc le PeekS() est nécessaire.
Code : Tout sélectionner
Import "Dll.lib"
MaFonctionDansLaDll(a.s)
EndImport
Procedure.s MaFonctionDansExe(Phrase.s)
ProcedureReturn PeekS(MaFonctionDansLaDll(Phrase))
EndProcedure
Debug MaFonctionDansExe("Bonjour Kcc")
Code : Tout sélectionner
Import "Dll.lib"
MaFonctionDansLaDll(a.s)
EndImport
Procedure.s MaFonctionDansExe(Phrase.s)
*Mem = MaFonctionDansLaDll(Phrase)
If *Mem
ProcedureReturn PeekS(*Mem)
else
ProcedureReturn ""
endif
EndProcedure
Debug MaFonctionDansExe("Bonjour Kcc")
Code : Tout sélectionner
ProcedureDLL KccYProgramme()
Static a$
..
..
ProcedureReturn @a$
EndProcedure
Code : Tout sélectionner
Debug PEEKS(CallFunction(0, "KccYProgramme"))
Oui oui PROGI tu as raisonProgi1984 a écrit :Par test,je pense que Frederic pense à ca :Code : Tout sélectionner
Import "Dll.lib" MaFonctionDansLaDll(a.s) EndImport Procedure.s MaFonctionDansExe(Phrase.s) *Mem = MaFonctionDansLaDll(Phrase) If *Mem ProcedureReturn PeekS(*Mem) else ProcedureReturn "" endif EndProcedure Debug MaFonctionDansExe("Bonjour Kcc")