VBA DLL C++
amine69500
Messages postés
422
Date d'inscription
Statut
Membre
Dernière intervention
-
amine69500 Messages postés 422 Date d'inscription Statut Membre Dernière intervention -
amine69500 Messages postés 422 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai construit une fonction avec C++ dans une dll, et je l'appelle depuis Microsoft Visual Basic (dans Excel) en lui passant des paramètres, mais celui ci n'est pas transmis jusqu'à la fonction Cpp.
Voici mon code :
Fichier fonction.cpp :
#include <stdio.h>
#include <curl/curl.h>
#include"conversion.h"
#include "json_spirit.h"
#include <cassert>
#include <fstream>
void __stdcall create (BSTR bstrPro, BSTR bstrSum, BSTR bstrDesc, BSTR bstrTyp)
{
if (bstrProject == NULL){
printf("bstrProject is null");
}
else if (bstrSummary == NULL){
printf("bstrSummary is null");
}
else if (bstrDescription == NULL){
printf("bstrDescription is null");
}
else if (bstrType == NULL)
printf("bstrType is null");
.
.
.
.
.
}
Fichier fonction.def :
LIBRARY "toto"
EXPORTS
create
Code vba depuis Excel :
Public Declare Function create Lib "toto.dll" (ByVal bstrProj As String, ByVal bstrSum As String, ByVal bstrDesc As String, ByVal bstrTyp As String) As String
Sub test()
'Déclaration du string
Dim bstrProj As String
Dim bstrSum As String
Dim bstrDesc As String
Dim bstrTyp As String
bstrProj = "AM"
bstrSum = "desdsd"
bstrDesc = "trerer"
bstrTyp = "dfgdsg"
'Call la dll
Module1.create bstrProj, bstrSum, bstrDesc, bstrTyp
End Sub
Résultat : Le fichier EXCEL est bien compiler aucune erreur, mais lorsque j'attache le ficher excel.exe sur c++ avec debogage attaché au process, quand je regarde ma dll, mes variables ne sont pas affecter dans ma fonction
Merci pour votre aide.
J'ai construit une fonction avec C++ dans une dll, et je l'appelle depuis Microsoft Visual Basic (dans Excel) en lui passant des paramètres, mais celui ci n'est pas transmis jusqu'à la fonction Cpp.
Voici mon code :
Fichier fonction.cpp :
#include <stdio.h>
#include <curl/curl.h>
#include"conversion.h"
#include "json_spirit.h"
#include <cassert>
#include <fstream>
void __stdcall create (BSTR bstrPro, BSTR bstrSum, BSTR bstrDesc, BSTR bstrTyp)
{
if (bstrProject == NULL){
printf("bstrProject is null");
}
else if (bstrSummary == NULL){
printf("bstrSummary is null");
}
else if (bstrDescription == NULL){
printf("bstrDescription is null");
}
else if (bstrType == NULL)
printf("bstrType is null");
.
.
.
.
.
}
Fichier fonction.def :
LIBRARY "toto"
EXPORTS
create
Code vba depuis Excel :
Public Declare Function create Lib "toto.dll" (ByVal bstrProj As String, ByVal bstrSum As String, ByVal bstrDesc As String, ByVal bstrTyp As String) As String
Sub test()
'Déclaration du string
Dim bstrProj As String
Dim bstrSum As String
Dim bstrDesc As String
Dim bstrTyp As String
bstrProj = "AM"
bstrSum = "desdsd"
bstrDesc = "trerer"
bstrTyp = "dfgdsg"
'Call la dll
Module1.create bstrProj, bstrSum, bstrDesc, bstrTyp
End Sub
Résultat : Le fichier EXCEL est bien compiler aucune erreur, mais lorsque j'attache le ficher excel.exe sur c++ avec debogage attaché au process, quand je regarde ma dll, mes variables ne sont pas affecter dans ma fonction
Merci pour votre aide.
2 réponses
C'est quoi le type BSTR ? il y a peut être une incompatibilité entre ce type et le type string de VB.