Re: Problemes de mémoire pr KCC, c'est pas que dans la tete :-(
Publié : jeu. 01/oct./2009 16:17
Bon cette fois on est synchro GEBONET 
Merci beaucoup de ton code
Pour le passage du pointeur a la DLL, SROD a utilisé une structure, je crois que c'est a cause de VB
Parce que maintenant....essaye de l'appeler de VB et recuperer ton tableau...tu va voir c'est drole
Entre l'UNICODE, et les BSTR....hihihi !!!!
Je me pisse dessus d'avance
Deja j'arrive jamais a comprendre si il faut mettre en BYVAL ou BYREF, ni non plus les VarPtr et StrPtr qui sont des fonctions non documentée et en principe cachée de VB.
Alors ça fait noir d'essais....et boing... boing...boing...boing...Splash ...plus de RAD, sans meme prevenir...ou au mieux avec un joli panneau erreur de memoire
KCC il est drolement fier, ...il a inventé un code qui ferme le RAD encore plus vite que le bouton QUITTER
Peut etre KCC y pourrait vendre le brevet a CROSOFT
Je ne pense pas avoir le temps de me lancer aujourd'hui, mais je rattaquerais lundi
Je peux te donner le debut de la piste que SROD m'avait donné
Avec ça on arrive a apeller la DLL et lui envoyer le tableau VB
Enfin si des fois tu as deux secondes...
Peut etre peut tu defricher le terrain
Par contre reste a trouver l'equivalent de PEEK en VB....
Car il ne sait pas faire ....
Encore merci pour tout GEBO
Code de la DLL
Code de l'EXE

Merci beaucoup de ton code

Pour le passage du pointeur a la DLL, SROD a utilisé une structure, je crois que c'est a cause de VB

Parce que maintenant....essaye de l'appeler de VB et recuperer ton tableau...tu va voir c'est drole

Entre l'UNICODE, et les BSTR....hihihi !!!!
Je me pisse dessus d'avance

Deja j'arrive jamais a comprendre si il faut mettre en BYVAL ou BYREF, ni non plus les VarPtr et StrPtr qui sont des fonctions non documentée et en principe cachée de VB.
Alors ça fait noir d'essais....et boing... boing...boing...boing...Splash ...plus de RAD, sans meme prevenir...ou au mieux avec un joli panneau erreur de memoire

KCC il est drolement fier, ...il a inventé un code qui ferme le RAD encore plus vite que le bouton QUITTER

Peut etre KCC y pourrait vendre le brevet a CROSOFT

Je ne pense pas avoir le temps de me lancer aujourd'hui, mais je rattaquerais lundi
Je peux te donner le debut de la piste que SROD m'avait donné
Avec ça on arrive a apeller la DLL et lui envoyer le tableau VB
Enfin si des fois tu as deux secondes...
Peut etre peut tu defricher le terrain

Par contre reste a trouver l'equivalent de PEEK en VB....
Car il ne sait pas faire ....

Encore merci pour tout GEBO

Code de la DLL
Code : Tout sélectionner
ProcedureDLL ListStrings(*strPtr.INTEGER, Number)
numElements = Val(PeekS(*strPtr\i, -1, #PB_Unicode))
MessageRequester("Array from VB", "Number of elements = " + Str(numElements))
For i = 1 To numElements
*strPtr + SizeOf(INTEGER)
text$ + "Element " + Str(i) + " = " + PeekS(*strPtr\i, -1, #PB_Unicode) + #CRLF$
Next
MessageRequester("Array from VB", text$)
EndProcedure
Code : Tout sélectionner
Private Declare Function ListStrings Lib "test.dll" (ByVal PointerArray As Long, Number As Integer) As Long
Private Sub Form_Load()
Dim ArrayString(10) As String
ArrayString(0) = Trim(Str(UBound(ArrayString)))
For i = 1 To 10
ArrayString(i) = "Sentence " + Str(i)
Next
ListStrings VarPtr(ArrayString(0)), 10
End Sub