cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 2013
-
9 mars 2011 à 11:19
cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 2013
-
9 mars 2011 à 11:43
Bonjour à tous
Je viens de m'appercevoir d'un truc que je n'arrive pas a comprendre
J'ai une sub qui recupere le pointeur d'un arraystring et qui le copie dans un arraystring
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 :
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 ????