Passage tableau string en parametre par pointeur

[Résolu]
Signaler
Messages postés
406
Date d'inscription
lundi 9 juin 2003
Statut
Membre
Dernière intervention
4 septembre 2013
-
Messages postés
406
Date d'inscription
lundi 9 juin 2003
Statut
Membre
Dernière intervention
4 septembre 2013
-
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 ????

Je vous remercie et bonne journée

1 réponse

Messages postés
406
Date d'inscription
lundi 9 juin 2003
Statut
Membre
Dernière intervention
4 septembre 2013
1
Excusez moi du derangement, j'ai trouvé que j'avais mal déclaré une API dans le module

Bonne journée