cs_franckydeluka
Messages postés228Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention 4 janvier 2008
-
11 juil. 2005 à 13:29
cs_franckydeluka
Messages postés228Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention 4 janvier 2008
-
12 juil. 2005 à 14:30
Bonjour à tous,
je viens de créer une dll en mode débug et quand je l'appelle à partir d'un autre programme ça marche nickel sans problème.
ensuite je l'ai compilée en mode release et là ça m'affiche 0 errors , 0 warnings pourtant quand je l'appelle à parir de mon autre programme là j'obtiens le message suivant :
"erreur d'execution '5' Argument ou appel de procedure incorrect"
quelqu'un pourrait il m'aiguiller tout d'abord sur la nature du problème ? c-à-d qu'est-ce que c'est cette erreur et si possible comment l'enlever ?
cs_franckydeluka
Messages postés228Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention 4 janvier 20081 12 juil. 2005 à 14:30
Merci à tous
voilà j'ai trouvé d'où venait le problème :
Quand on veut crée une dll avec visual c++ appelable à partir d'un projet visual basic la compilation requiert le fichier .def ainsi que dans les options du projet\ongletC/C++\categorie code génération on doit selectionner comme "calling convention" _stdcall
si on veut qu'elle soit appelable à partir d'un projet écrit en C (ça doit être par défaut) il n'y a aps lieu d'utiliser le fichier .def, et on utilise comme "calling convention" _cdecl, puis insérer le .lib dans la liste des fichiers du projet appelant.
cs_franckydeluka
Messages postés228Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention 4 janvier 20081 11 juil. 2005 à 14:51
ah oui, mon programme appelant est écrit en vb6 lui.
donc je référence ma dll ensuite je fais :
maVariable as maDll 'déclaration de variable
puis je l'appelle :
résultat = maVariable.maFonction ' résultat : retourne 0 si succès, 1 si échec
je pense pas que le problème vienne de mon programme appelant mais de la dll en c++ . est-ce qu'il ne faudrait pas que je référence mes fonctions exportées différement selon si je les utilise à partir d'un programme en C ou en VB ?
peut-être l'instruction _stdcall (dans le .def) mais je ne sais pas comment l'utiliser? parce que générée en mode débug ça marche très bien, même sur un autre PC qui n'a pas visual studio.