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

cs_franckydeluka 228 Messages postés mardi 5 avril 2005Date d'inscription 4 janvier 2008 Dernière intervention - 11 juil. 2005 à 13:29 - Dernière réponse : cs_franckydeluka 228 Messages postés mardi 5 avril 2005Date d'inscription 4 janvier 2008 Dernière intervention
- 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
cs_franckydeluka 228 Messages postés mardi 5 avril 2005Date d'inscription 4 janvier 2008 Dernière intervention - 12 juil. 2005 à 14:30
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.

Merci cs_franckydeluka 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

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

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