contra69005
Messages postés9Date d'inscriptionsamedi 7 février 2009StatutMembreDernière intervention13 juin 2012
-
13 juin 2012 à 11:40
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024
-
14 juin 2012 à 20:10
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.
{
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");
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
'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
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 13 juin 2012 à 13:36
Bonjour,
En quoi ta question creesponde à sonc lassement ?
CodeS-SourceS > A propos des sites CodeS-SourceS > Demande d'un nouveau thème de discussion sur CodeS-SourceS
Je déplace sur VBFrance pour l'instant.
As-tu essayé d'utiliser ByRef à la place de ByVal ?
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list ---
Mon site
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 14 juin 2012 à 20:10
Bonjour,
Tu as des printf dans ta DLL, mais où sortent les informations ?
"ca ne marche pas", avec le même effet ?
Comment tu contrôles si les valeurs sont passées ?
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list ---
Mon site