Mode debug / mode release avec Visual C++ [Résolu]

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

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

Comment tu fais appel à ta DLL dans ton prog ?

TOCHE
Messages postés
228
Date d'inscription
mardi 5 avril 2005
Statut
Membre
Dernière intervention
4 janvier 2008
1
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.
Messages postés
10
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
12 juillet 2005

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.....