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

Messages postés
228
Date d'inscription
mardi 5 avril 2005
Dernière intervention
4 janvier 2008
- - Dernière réponse : cs_franckydeluka
Messages postés
228
Date d'inscription
mardi 5 avril 2005
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.
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
228
Date d'inscription
mardi 5 avril 2005
Dernière intervention
4 janvier 2008
3
Merci
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.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 96 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_franckydeluka
Messages postés
126
Date d'inscription
jeudi 5 juin 2003
Dernière intervention
11 juillet 2006
0
Merci
Comment tu fais appel à ta DLL dans ton prog ?

TOCHE
Commenter la réponse de ricky78
Messages postés
228
Date d'inscription
mardi 5 avril 2005
Dernière intervention
4 janvier 2008
0
Merci
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.
Commenter la réponse de cs_franckydeluka
Messages postés
10
Date d'inscription
lundi 30 décembre 2002
Dernière intervention
12 juillet 2005
0
Merci
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.....
Commenter la réponse de PsYk0PaT

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.