begin process at 2012 02 13 16:11:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Windows

 > 

ActiveX / COM

 > 

Passer un tableau de String à une DLL C++ qui devra le remplir


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Passer un tableau de String à une DLL C++ qui devra le remplir

vendredi 25 juillet 2008 à 20:38:37 | Passer un tableau de String à une DLL C++ qui devra le remplir

Pyou

Bonjour,

Voici mon problème:

J'aimerais appeler une fonction dans une DLL C++ en lui passant un tableau de string, et que la DLL me remplisse ce tableau avec des string.
Pour résumer, voici ce que je voudrais faire en VB:

Dim tableau() as String
'Le tableau est vide
fctDLL( tableau )
'Le tableau a été rempli et contient n strings

MsgBox tableau(0)
MsgBox tableau(1)
...


Après avoir pas mal cherché, j'en ai conclu qu'il fallait utiliser les SAFEARRAY pour faire ça. Par contre, j'ai aussi lu quelque par qu'il fallait utiliser une DLL COM. Quelle est la différence entre une DLL COM et non COM ? La DLL doit-elle être managé pour que cela marche ?

Pour l'instant, je déclare la fonction de la DLL comme suit :

Declare Function fctDLL Lib "laDLL.dll" (ByRef tableau() As String) As Int32

Le prototype en C++ dans la DLL est le suivant :

int __stdcall fctDLL(SAFEARRAY** tableau)


Pendant mes recherches, je suis tombé sur cet exemple :
http://rp.developpez.com/vb/tutoriels/dll/#L11
Il ne fonctionne pas, car SafeArrayAccessData me renvois DISP_E_ARRAYISLOCKED

Auriez-vous une idée ?

Merci,

Pyou



samedi 26 juillet 2008 à 11:31:51 | Re : Passer un tableau de String à une DLL C++ qui devra le remplir

PCPT

Administrateur CodeS-SourceS
salut,
tu es sûr de la déclaration?
jamais vu de dll cpp qui accepte un tableau, çà serait plutôt son pointeur

genre
Declare Function fctDLL Lib "laDLL.dll" (ByRef lptArray As Long) As Int32
 
Dim tableau() as String
redim tableau(0)
'Le tableau est vide
fctDLL(
varptr(tableau(0))
'Le tableau a été rempli et contient n strings

MsgBox tableau(0)
MsgBox tableau(1)



mais bon, c'est à l'aveuglette alors....

Prenez un instant pour répondre à ce sondage svp  
dimanche 27 juillet 2008 à 22:41:54 | Re : Passer un tableau de String à une DLL C++ qui devra le remplir

Pyou

Merci pour ta réponse.

Si je lui passe le pointeur du tableau, que dois-je récupérer du coté DLL ?
un char **, un string *, un SAFEARRAY** ? Et comment faire pour remplir le tableau ?


Cette discussion est classée dans : string, dll, tableau, com, fctdll


Répondre à ce message

Sujets en rapport avec ce message

Passer un tableau de string de VB vers une DLL C++ [ par paco ] Salut, mon problème est le suivant : je désire travailler avec des tableaux de string dans une de mes DLL C++. Ces tableaux, dynamiques, doivent venir Passage d'un tableau de byte à une fonction encapsulé dans un ACtiveX Dll [ par novik ] J'aimerai pouvoir passer un tableau de Byte a ma fonction (Activex Dll)lors de l'appel j'ai une erreur Type Mismatch.Or lorsque j'appelle cette foncti taleau [ par labartho ] je debute alors j'ai un peu de mal :-))j'ai une liste MSFLEXGRID qui comporte 62 colonnes et x lignes. Chaque colonne correspond a 1/2 journée et cha tableau de chaine...subtile. [ par rurouni ] bon, je suis pas encore le pro du VB...donc je vous pose mon probleme...J ai declare un tableau de string comme ca:Dim tab_str(10) As String * 9pour a passage d'un tableau de Strings de java vers vb [ par coyote ] J'ai fais une dll java dont une des methodes retourne un tableau de string (String[]). J'integre cette dll a mon projet vb; mais lorsque je veux recup DLL et tableau [ par globule ] comment appeler en VB une fonction d'une DLL en VC++ et recuper les valeurs dans un tableau (passage par reference) Problème de dll [ par sebastienbro ] Bonjour,j'utilise une dll fait en c++.Un argument de la fonction est un type créer par l'utilisateur a laide de Type. Mais j'ai un problème. Les valeu tableau de string [ par tobby ] qq sait comment declarer un tableau de string?du type array(20) of string,pour un tableau de 20 chaines de caracteres? Raccourci sans VB5stkit.dll ? [ par peug.net ] Ce code permet de créer un raccourci vers la bureau. Mais comment utiliser la vb6 au lieu de la VB5 ?'==================Private Declare Function fCrea parametre d une functtion [ par oliverr22 ] bonjour j ai un probleme pour passer un tableau en parametre d une fonction...ex:Function Toto( T) as stringT etant un tableau défini dans mon prog pr


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,368 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales