
Je suis pas au bout de la route, j'ai interet a prendre le bonheur pendant le chemin

Merci de me supporter FLYPE, parfois il doit mieux valoir se taper un prog compliqué qu'un boulet comme moi
Bonne soiree
Code : Tout sélectionner
ProcedureDLL.l GetEnv(*n.Long)
Static Dim env.s(100)
If ExamineEnvironmentVariables()
*n\l = 0
While (*n\l < 100) And NextEnvironmentVariable()
env(*n\l) = EnvironmentVariableName() + " = " + EnvironmentVariableValue()
*n\l + 1
Wend
ProcedureReturn @env()
EndIf
EndProcedure
Code : Tout sélectionner
If OpenLibrary(0, "env.dll")
*env = CallFunction(0, "GetEnv", @n)
If *env
Dim env.s(n)
env() = *env
For i = 0 To n - 1
Debug env(i)
Next
EndIf
EndIf
Code : Tout sélectionner
Structure TABLE
s.s[0]
EndStructure
If OpenLibrary(0, "env.dll")
*env.TABLE = CallFunction(0, "GetEnv", @n)
If *env
For i = 0 To n - 1
Debug *env\s[i]
Next
EndIf
CloseLibrary(0)
EndIf
Code : Tout sélectionner
Import "test.lib"
MesPhrases.l(*n)
MesPhotos.l(n.l)
EndImport
Code : Tout sélectionner
; code de la dll
Global Dim tableau$(5)
For t=0 To 5
tableau$(t)="phrase"+Str(t)
Next t
ProcedureDLL RempliTablo()
ProcedureReturn tableau$()
EndProcedure
Code : Tout sélectionner
; exploite la dll
Dim tablo.s(5)
If OpenLibrary(0, "dll_test.dll")
*AdresseTablo = CallFunction(0, "RempliTablo") ; recup l'adresse du tableau envoyé par la dll
For t=0 To 5
*Ptr = PeekL(*AdresseTablo+(t*4)) ; recupere le contenu du tableau
Debug PeekS(*Ptr)
Next t
CloseLibrary(0)
EndIf
à mon avis c'est une boulette. c'est bien ProcedureDLL qu'il faut...Kwai chang caine a écrit :Dans le code de notre ami Cpl.bator quelques post au dessus, pourquoi utilise t'il "ProcedureCDLL" et pas "ProcedureDLL"Cpl.Bator a écrit : ProcedureCDLL.l ReturnPtr()
ProcedureReturn Tab$()
EndProcedure[/code]