Passage tableau string en parametre par pointeur
Bonjour à tous
Je viens de m'appercevoir d'un truc que je n'arrive pas a comprendre 8O
J'ai une sub qui recupere le pointeur d'un arraystring et qui le copie dans un arraystring
Code:
1 2 3
| Public Sub PtrUnicodeEnTabloString(PtrUnicode As Long, ByRef TabloARemplir() As String)
CopyMemory TabloARemplir(), PtrUnicode, 4
End Sub |
Cette fonction marche tres bien quand elle est dans la form principale :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination() As String, ByRef source As Long, ByVal Length As Long)
Private Declare Function CreationTabloUnicodeSafeArray Lib "DllPb.dll" () As Long
Public Sub PtrUnicodeEnTabloString(PtrUnicode As Long, ByRef TabloARemplir() As String)
CopyMemory TabloARemplir(), PtrUnicode, 4
End Sub
Public Sub Form_Load()
Dim Tablo() As String, PtrSafeArrayDll As Long
ChDir App.Path
PtrSafeArrayDll = CreationTabloUnicodeSafeArray()
PtrUnicodeEnTabloString PtrSafeArrayDll, Tablo()
For i = 1 To UBound(Tablo())
phrase = phrase + StrConv(Tablo(i), vbFromUnicode) + Chr(13)
Next
MsgBox phrase, vbOKOnly, "Appel VB"
End Sub |
Mais pas dans un module, quelqu'un sait il pourquoi ???? :(
Je vous remercie et vous souhaite une bonne journée