J'suis dégouté...j'y comprend decidement rien a cette mémoire.

J'arrive aussi bien a gerer la mienne que celle de mon PC

Voila.... j'ultilise depuis longtemps une procedure dans une DLL, qui me retourne l'adresse d'un tablo de string et depuis ce temps KCC il etait heureux comme un homme au milieu d'un harem

Et en plus, drolement fier, parce qu'il croyait avoir tout compris de ce qui se passe dans la mémoire de sa machine

Et avant hier, KCC il appelle deux fois de suite la dite procedure, et la ....patatrac, adieu veaux, vaches, cochons......toute la fierté de KCC elle est retournée à un endroit qu'elle n'aurait jamais du quitter.....c'est à dire, dans ses pompes

Parce que j'appelle donc 2 fois cette procedure et essaye de charger a chaque fois le retour du tableau de la DLL dans un tablo de l'exe different.
En debug ça marche, mais quand je retourne voir le premier tableau et ben ou au mieux il a été écrasé par le second....ou bien j'obtiens des caracteres qui seraient du plus bel effet dans la chambre de RAMSES II

J'ai posé la question sur le US et XOMBIE m'a dit que je reutilise le meme pointeur de tableau, ce a quoi j'ai répondu que oui puisque j'appelle la DLL ...elle charge un tableau propre a elle, et renvoi son adresse une fois plein.
Je recupere cette adresse et je copie le tableau de la DLL dans mon 1er tableau de l'exe...jusqu'a la...tout "benne"

Mais quand je rapelle, tout de suite derriere, la meme DLL et la meme procedure, elle redimensionne son tablo pour etre sur de l'effacer, et elle charge une autre valeur, puis renvoi a nouveau l'adresse de son tableau.
A nouveau, je recupere l'adresse et copie un second tableau dans l'exe grace à elle.
Et c'est la, que y'a ........(excusez moi l'expression quelque peu cavaliere)........ couille dans le potage

Le second tableau de l'exe viens ecraser le premier

Alors la ....... je reste dans voix, ça fait deux jours que je cherche tout seul devant mon ecran...mais la je crois que y'a un "miasme" qui m'echappe

Si quelqu'un pouvait allumer une bougie dans cette penombre qui est desormais mienne

Voici le fruit de ma souffrance :
L'EXE
Code : Tout sélectionner
Dim ArrayA.s(0)
OpenLibrary(0,"dll.dll")
ArrayA() = CallFunction(0, "CreateArray", "a")
For i=1 To ArraySize(ArrayA())
Debug "ArrayA = " + ArrayA(i)
Next
Dim ArrayB.s(0)
ArrayB() = CallFunction(0, "CreateArray", "b")
For i=1 To ArraySize(ArrayB())
Debug "ArrayB = " + ArrayB(i)
Next
CallDebugger
Code : Tout sélectionner
ProcedureDLL.l CreateArray(Lettre$)
Shared Passage, xx
Passage + 1
If Passage = 1
Global Dim ArrayDll.s(100000)
EndIf
For x = 1 To 5
xx + 1
ArrayDll(xx) = RSet("", xx, Lettre$)
Next
If Passage = 1
CreateArray(Lettre$)
ReDim ArrayDll.s(xx)
Passage = 0
xx = 0
EndIf
ProcedureReturn @ArrayDll()
EndProcedure