Mode debug / mode release avec Visual C++

Résolu
cs_franckydeluka Messages postés 228 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 4 janvier 2008 - 11 juil. 2005 à 13:29
cs_franckydeluka Messages postés 228 Date d'inscription mardi 5 avril 2005 Statut Membre Derniè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 ?

Merci



Deluka.

4 réponses

cs_franckydeluka Messages postés 228 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 4 janvier 2008 1
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.

Deluka.
3
ricky78 Messages postés 126 Date d'inscription jeudi 5 juin 2003 Statut Membre Dernière intervention 11 juillet 2006
11 juil. 2005 à 14:22
Comment tu fais appel à ta DLL dans ton prog ?

TOCHE
0
cs_franckydeluka Messages postés 228 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 4 janvier 2008 1
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.



Deluka.
0
PsYk0PaT Messages postés 10 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 12 juillet 2005
11 juil. 2005 à 22:20
J'ai eu le meme probleme avec Borland C++ Builder 5 et 6. J'ai
pas trouvé de solution miracle donc tout mes dll sont compiler en mode
debug.....
0
Rejoignez-nous