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
Cette fonction marche tres bien quand elle est dans la form principale :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Public Sub PtrUnicodeEnTabloString(PtrUnicode As Long, ByRef TabloARemplir() As String) CopyMemory TabloARemplir(), PtrUnicode, 4 End Sub
Mais pas dans un module, quelqu'un sait il pourquoi ????
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Je vous remercie et vous souhaite une bonne journée
Partager