Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb de Déclaration de function C exportée par une DLL en VB

3 réponses
Avatar
Dominik
Bonjour à tous ,
je dois appeller une fonction C exporter par une DLL (non activeX) !
Jusque là , je sais faire !
Genre :
Public Declare Function MaFonction Lib "ZipDirectory.dll" Alias
"_MaFonction@8" (ByVal Param1$, ByVal param2$) As Long

mon pb c'est le parametre liste de la fonction suivante 'signature depends :
_MaFonction@12
il s'agit visiblement d'un tableau de String mais je ne sais pas :
1) comment le mapper en VB
2) comment lui allouer de la memoire avant appel

Fonction C :
extern "C" _declspec (dllexport) int WINAPI MaFonction (LPCSTR Param1,
LPCSTR Param2, std::list<CString *> &Liste);

merci de votre aide !
(un exemple de code serait le bienvenue !

3 réponses

Avatar
pas-de-spam>Wanadoo.fr
Dominik a écrit :

Bonjour à tous ,
je dois appeller une fonction C exporter par une DLL (non activeX) !
Jusque là , je sais faire !
Genre :
Public Declare Function MaFonction Lib "ZipDirectory.dll" Alias
"" (ByVal Param1$, ByVal param2$) As Long

mon pb c'est le parametre liste de la fonction suivante 'signature depends :

il s'agit visiblement d'un tableau de String mais je ne sais pas :
1) comment le mapper en VB
2) comment lui allouer de la memoire avant appel

Fonction C :
extern "C" _declspec (dllexport) int WINAPI MaFonction (LPCSTR Param1,
LPCSTR Param2, std::list<CString *> &Liste);

merci de votre aide !
(un exemple de code serait le bienvenue !




Bonjour,


Va voir quelques posts en arrière,la réponse au message "Pb retour Dll"
du 10/06/05. Il y a une ébauche de solution.


A+

Christophe
Avatar
Dominik
Ce n'est pas le meme probleme que j'ai , moi il s'agit d'un tableau d'objets
C++ CString !!!
et non pas d'un char *.
C'est la tout mon probleme !
merci quand meme de ta reponse !



"pas-de-spam>Wanadoo.fr Wanadoo.fr >" <"pas-de-spam> a écrit dans le message
news: 42b2ea88$0$25015$
Dominik a écrit :

> Bonjour à tous ,
> je dois appeller une fonction C exporter par une DLL (non activeX) !
> Jusque là , je sais faire !
> Genre :
> Public Declare Function MaFonction Lib "ZipDirectory.dll" Alias
> "" (ByVal Param1$, ByVal param2$) As Long
>
> mon pb c'est le parametre liste de la fonction suivante 'signature


depends :
>
> il s'agit visiblement d'un tableau de String mais je ne sais pas :
> 1) comment le mapper en VB
> 2) comment lui allouer de la memoire avant appel
>
> Fonction C :
> extern "C" _declspec (dllexport) int WINAPI MaFonction (LPCSTR Param1,
> LPCSTR Param2, std::list<CString *> &Liste);
>
> merci de votre aide !
> (un exemple de code serait le bienvenue !
>
>
Bonjour,


Va voir quelques posts en arrière,la réponse au message "Pb retour Dll"
du 10/06/05. Il y a une ébauche de solution.


A+

Christophe







Avatar
pas-de-spam>Wanadoo.fr
Dominik a écrit :

Ce n'est pas le meme probleme que j'ai , moi il s'agit d'un tableau d'objets
C++ CString !!!
et non pas d'un char *.
C'est la tout mon probleme !
merci quand meme de ta reponse !



"pas-de-spam>Wanadoo.fr Wanadoo.fr >" <"pas-de-spam> a écrit dans le message
news: 42b2ea88$0$25015$

Dominik a écrit :


Bonjour à tous ,
je dois appeller une fonction C exporter par une DLL (non activeX) !
Jusque là , je sais faire !
Genre :
Public Declare Function MaFonction Lib "ZipDirectory.dll" Alias
"" (ByVal Param1$, ByVal param2$) As Long

mon pb c'est le parametre liste de la fonction suivante 'signature





depends :


il s'agit visiblement d'un tableau de String mais je ne sais pas :
1) comment le mapper en VB
2) comment lui allouer de la memoire avant appel

Fonction C :
extern "C" _declspec (dllexport) int WINAPI MaFonction (LPCSTR Param1,
LPCSTR Param2, std::list<CString *> &Liste);

merci de votre aide !
(un exemple de code serait le bienvenue !





Bonjour,


Va voir quelques posts en arrière,la réponse au message "Pb retour Dll"
du 10/06/05. Il y a une ébauche de solution.


A+

Christophe












Salut

Je suis pas un pro en C++, et donc ....

Mais je je me suis tout de même posé la question de savoir quel était
l'objet CString ça me renvoi vers les BSTR et :
http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/vcmex/html/vclrfimplementnativecominterfaceswithmanagedextensionstoc.asp

et

http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/vccore/html/_core_Strings.3a_.Basic_CString_Operations.asp

Mais m'est avis que ça va être rude à passer un tel argument depuis VB.
Il y aurait peut-être intérêt à construire une fonction supplémentaire
dans la Dll qui attends des LPCTSTR et qui les transforme en CSTRING

Christophe