Pb de lecture de fichier avec une DLL

cs_loic81 Messages postés 26 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 25 février 2004 - 23 févr. 2004 à 12:16
cs_loic81 Messages postés 26 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 25 février 2004 - 25 févr. 2004 à 10:53
J'ai fait un programme en C sous vc++6 qui lit un dans un fichier (en trottre) en utilsant la méthode des streams (fonction fread...).
Lorsque je le compile et j'exécute en .exe, ça fonctionne, mais lorsque je le compile en DLL "dynamic", le programme tourne, mais les infos ne sont pas lus dans le fichier...
si je change le nom du fichier à lire, le programme sort une erreur, cela veut donc dire que la dll va bien pointer sur le bon fichier...

Comment résoudre cela?
Le problème vient il d'une mauvaise option à activer ou à désactiver dans la config du projet sous visual c++6?

merci d'avance à quiconque répondra...

11 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 févr. 2004 à 13:03
Faudrait voir le code DLL.
Comme d'hab, CS n'est pas la meteo ou autre club de devins.

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_loic81 Messages postés 26 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 25 février 2004
23 févr. 2004 à 15:02
c'est vrai, t'as raison.
je te donne un extrait de la dll en question :

dans le programme principal :
-appel d'une fonction qui va lire dans le fichier
-exportation des variables ; output->Braquage = valeur;

dans la fonction qui lit le fichier:
fichier_ref = fopen("Offsets_ref.txt", "r"); //ouverture/création du fichier
fsetpos(fichier_ref,&filepos); //on place le curseur à la position X
fread(buf, 1,11, fichier_ref); //on lit 1 * 11 carractères
valeur = strtod(buf,&endptr);
printf("valeur: %lf\n",valeur);
fclose(fichier_ref); //ferme le fichier

Remarque : les fonctions sont dans un header, déclaré au début du fichier principal par #include "fonctions_ess1_boitier.h
La lecture de "valeur" fonctionne lorsque le programme est compilé en .exe, mais pas lorsqu'il est exécuté en tant que DLL..

Merci
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 févr. 2004 à 15:40
Je ne fais que du win32 donc je ne parlerai pas du code.
Ceci dit si tout est identique, fonction dans dll ou exe doit sortir idem.

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_loic81 Messages postés 26 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 25 février 2004
23 févr. 2004 à 18:24
merci brunews

mais je suis toujours bloqué : Est-ce qu'il n'y a pas des différences d'autorisations entre les dll et les exe??? puisque ça marche pas... d'ou est-ce que ça peut venir? quelqu'un aurait-il une solution ou une piste? un paramètre à vérifier dans la config du projet ou autre....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 févr. 2004 à 18:36
Sur Visual Studio:
new proj win32 dd et VIDE.
Un cpp et un def pour export sans deco.
Compile release et tout doit tourner.

ciao...
BruNews, Admin CS, MVP Visual C++
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 févr. 2004 à 18:38
RECTIF faute de frappe:

Sur Visual Studio:
new proj win32 DLL et VIDE.
Un cpp et un def pour export sans deco.
Compile release et tout doit tourner.

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_loic81 Messages postés 26 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 25 février 2004
24 févr. 2004 à 16:00
ok pour la création de la dll, mais dans le cpp et le def, je met quoi? simplement une petite fonction qui utilise la lecture du fichier?
le def, ça sert à quoi? c'est indispensable?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
25 févr. 2004 à 01:17
Le def exporte ta fonction sans decoration du nom.

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_loic81 Messages postés 26 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 25 février 2004
25 févr. 2004 à 10:05
escuse mon modeste niveau, mais pourrais tu me préciser "sans décoration du nom"

faut il attacher le fichier def avec un "#define" ?

Faut que les fonctions qui lisent le fichier soient dans le cpp ou le def?
je suis en c et pas en cpp, c'est la même méthode à faire?

merci
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
25 févr. 2004 à 10:29
Va voir mes sources sur le sujet, c'est clair et publie pour etre consulte.
Trop de boulot en ce moment pour m'eterniser sur un sujet.

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_loic81 Messages postés 26 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 25 février 2004
25 févr. 2004 à 10:53
OK,

merci
0
Rejoignez-nous