cs_jon26
Messages postés11Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention 1 mars 2004
-
26 févr. 2004 à 12:53
cs_jon26
Messages postés11Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention 1 mars 2004
-
27 févr. 2004 à 12:04
Après de très bon conseils de BruNews qui m'ont permis d'exporter enfin mes fonctions de ma dll vers une application VB, j'aimerais savoir autre chose pour être tout-à-fait à la pointe, niveau dll. Comment la debugger? Je vois qu'on peut la faire s'exécuter dans un exécutable apèrs la compilation, mais je ne sais pas à quoi ça sert et comment ça marche.
En gros, j'aimerais pouvoir afficher les résultats de mes variables avec un cout << par exemple, mais la petite fenêtre dos ne s'ouvre plus. Comment faire?
Et puis, est-il possible de faire en sorte en C++ qu'un vecteur vect(7) ait son premier élément à 1 et son dernier à 7 et pas son premier à 0 et son dernier à 6?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 26 févr. 2004 à 13:04
int vect[7], i;for(i 0; i < 7; i++) vect[i] i+1;
Le reste de la question, rien compris.
Dll exporte des fonctions qui retournent valeurs et/ou modifient params. C'est a l'exe qui se sert de la dll de faire les affichages, aucune difference que les funcs soient dans dll ou exe au niveau affichage. La dll n'entre pour rien dans l'affaire.
cs_jon26
Messages postés11Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention 1 mars 2004 26 févr. 2004 à 13:48
Pour la première partie de ta réponse, je voulais dire autre chose. Je veux 7 éléments dans un vecteur, indexés de 1 à 7 et pas de 0 à 6. Si je déclare vect[7], mon vecteur va de 0 à 6 , donc je dois déclarer vect[8] pour avoir l'index 7. Je dis ça parce que dans vb, je traite mes vacteurs de à partir de l'index 1 et pas l'index 0, et que là il est possible de déclarer 7 éléments indexés de 1 à 7. Mais c'est pas grave, je dis 8 éléments dans c, et c'est bon, mais je trouvais ça un peu moyen comme moyen.
Pour la deuxième partie, je sais que je dois appeler mes fonctions à partir d'un exe ou de vb. Mais ma dll compilée, j'appelle ma fonction depuis vb (une grosse fonction de la dll). Si il y à une erreur d'exécution (pas de compil), vb se ferme, et un message d'erreur s'affiche comme quoi j'essaie de lire ou écrire là où ce n'est pas permis en mémoire, puisqu'il n'a accès qu'au code compilé de ma dll. Alors ça veut dire que pour trouver mes erreurs dans le code de mes fonctions C++, il n'y à aucun moyen de faire du step by step par exemple, ou bien d'introduire un breakpoint là où le problème est causé, comme en vb?
Je dois repasser en revue ma fonction à la main. Je sais que C++ n'est pas interprété, mais comment débugger?
hilairenicolas
Messages postés398Date d'inscriptionjeudi 30 octobre 2003StatutMembreDernière intervention15 juin 20072 27 févr. 2004 à 09:23
Tu fais un exécutable de ton fichier VB
Projet --> Settings --> debug
tu mets l'emplacement de ton prog VB dans "executable for debug session"
(au besoin, dans category, additionnal dll, tu mets l'emplacement de ta dll)
et puis tu mets tes points d'arrets dans le code de ta dll et tu lances le debugger
cs_jon26
Messages postés11Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention 1 mars 2004 27 févr. 2004 à 12:01
Super, merci infiniment, ça marche. J'arrive à la debugger. Le problème que j'ai encore est que mon passage de paramètre ne rend pas les mêmes valeurs en c++. Je fais un appel depuis vb avec une fonction qui passe des long (a as long, b as long), il appelle bien ma fonction dans la dll qui a des entiers (int a, int b) en paramètre.
Je mets un point d'entrée au début de la fonction. Les valeurs de a et b sont totalement différentes. De (10,50) en vb par exemple, je reçoit (1244508, 1244504). Même en changeant mon 10 et mon 50, j'ai des valeurs proches de ça.
Qui sait?
Jonathan
Vous n’avez pas trouvé la réponse que vous recherchez ?