IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Passage tableau string en parametre par pointeur


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 309
    Points : 58
    Points
    58
    Par défaut Passage tableau string en parametre par pointeur
    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

    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
    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
    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

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 309
    Points : 58
    Points
    58
    Par défaut
    Excusez moi du derangement, j'ai trouvé que j'avais mal déclaré une API dans le module

    Bonne journée

  3. #3
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Bonjour,
    Citation Envoyé par andrebernard Voir le message
    .../...
    J'ai une sub qui recupere le pointeur d'un arraystring et qui le copie dans un arraystring
    .../...
    Juste une question ... accessoire :
    comme récupères-tu le pointeur ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 309
    Points : 58
    Points
    58
    Par défaut
    Bonjour DarkVader content de te reparler

    Bah toujours avec mon systeme de DLL
    Le safearray est créé dans la DLL et elle me retourne le pointeur

  5. #5
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    OK, c'était juste pour être sur que tu utilisais la fonction adéquate
    pour récupérer le pointeur d'un tableau de String.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 309
    Points : 58
    Points
    58
    Par défaut
    Merci de t'inquieter pour moi

    Je progresse petit a petit, grace à l'aide d'un peu tout le monde, depuis 5 ans que je cherche le GRAAL
    Heureusement pour moi, je fait des choses en attendant, mais ça me rammene toujours a la meme recherche un moment ou a un autre
    Normal comment tu peux utiliser les DLL, si tu peux pas leur passer ou recuperer des variables ???

    Je te souhaite une bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passage de structure en parametre fonction : Pointeur
    Par apicard3 dans le forum Débuter
    Réponses: 5
    Dernier message: 30/10/2013, 08h29
  2. Passage de tableau à une fonction par pointeur
    Par progfou dans le forum C++
    Réponses: 15
    Dernier message: 23/02/2007, 11h45
  3. [Tableaux] passage de tableau en parametre par l'url
    Par arnolpourri dans le forum Langage
    Réponses: 10
    Dernier message: 15/06/2006, 14h32
  4. Réponses: 8
    Dernier message: 10/03/2006, 17h28
  5. Réponses: 2
    Dernier message: 19/07/2005, 11h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo