Deploiement XP - msvcrt.dll [Résolu]

Messages postés
401
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
6 juin 2011
- - Dernière réponse : lesdis
Messages postés
401
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
6 juin 2011
- 19 déc. 2007 à 10:59
Bonjour,

Tout d'abord, je m'excuse si je ne me situe pas dans la bonne partie du forum...

Donc je développe sur Vista Pro via VS2005 et j'ai un soucis lorsque j'exporte mon appli sur windows XP. J'ai lu plusieurs post parlant du runtime, mais étant complètement débutant, je ne comprend pas tout...

Lorsque je lance l'application sur le pc sur XP, j'ai une erreur de type : "Le point d'entrée de procédure <nom procédure> est introuvable dans la bibliothèque de liaison dynamique msvcrt.dll".
Cela est assez clair, l'application cherche a accéder a une procédure qui n'existe pas dans le fichier msvcdt d'XP.

J'aimerais donc savoir comment faire pour importer ma propre dll et pour que l'application l'utilise.

J'ai eu beau donner le chemin du WDK pour qu'il puisse piocher dedans, passer en multithreading (/MT), prendre en charge ou non le Common language Runtime (/clr) et d'autre manip que j'ai pu trouver sur ce forum ainsi que sur le net, mon erreur reste la même...

Merci d'avance si quelqu'un pouvait me donner une solution (dans le meilleur des cas ) ou bien m'aiguiller vers des tutos / explication précise de l'erreur, etc..

Bonne Prog
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
3
Merci
On ne devrait jamais linker avec msvcrt.dll directement.
Essaie avec:
TEMPLATES C/C++ POUR VS 2005
http://www.cppfrance.com/code.aspx?ID=36940

ciao...
BruNews, MVP VC++

Dire « Merci » 3

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

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

Commenter la réponse de BruNews
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
9
3
Merci
Salut,


C'est marrant qu'il te parle de msvcrt.dll. VC2005 est sensé utiliser d'autres dlls, voire aucune si on lie statiquement... Après, peut être que ces dlls appelent msvcrt en interne, je sais pas.


Essais peut être d'y voir plus claire avec Dependancy Walkers.

<hr size="2" width="100%" />3ème année en ecole d'ingé d'info cherche stage de 4 mois à partir du 01/04/08

Dire « Merci » 3

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

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

Commenter la réponse de cs_rt15
Messages postés
401
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
6 juin 2011
3
Merci
Bonjour,

J'ai résolu le problème en excluant spécifiquement la bibliothèque msvcrt.lib

Merci encore a vous !

Bonne Prog

Dire « Merci » 3

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

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

Commenter la réponse de lesdis
Messages postés
401
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
6 juin 2011
0
Merci
Merci pour vos réponse, je regarde ca et je vous donne des nouvelles des que j'aurais avancer

Bonne Prog
Commenter la réponse de lesdis
Messages postés
401
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
6 juin 2011
0
Merci
>>> C'est marrant qu'il te parle de msvcrt.dll. VC2005 est sensé utiliser d'autres dlls, voire aucune si on lie statiquement... Après, peut être que ces dlls appelent msvcrt en interne, je sais pas.

Voici mes includes :
#include <stdio.h>
#include <stdlib.h>
#include <objbase.h>
#include <setupapi.h>
#include
#include <windows.h>
#include <regstr.h>
#include <strsafe.h>
#include <winusb.h>

#pragma comment (lib, "winusb.lib")
#pragma comment (lib, "setupAPI.lib")
 
Peut-etre une celle ci, je ne les ai pas toutes parcourus...

Bonne Prog
Commenter la réponse de lesdis
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
0
Merci
#include <windows.h>
est l'unique à laisser.

#include <stdio.h>
si besoin de sprintf pour les floats sinon à virer.

Quand besoin d'un spécifique, c'est indiqué en bas de page MSDN d'une API.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
Messages postés
401
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
6 juin 2011
0
Merci
Bon d'après Dependancy Walkers, l'appel de msvcrt.dll se fait à partir de la librairie setupapi.
J'ai minimisé mes includes, il ne me reste plus que :

#include <windows.h>
#include <setupapi.h>
#include <strsafe.h> // pour le StringCchCopy
#include <winusb.h>  // pour l'utilisation des fonctions relatives à l'usb

#pragma comment (lib, "winusb.lib")
#pragma comment (lib, "setupapi.lib")

Bien entendu je ne peux pas enlever le setupapi sans avoir plus d'une centaine d'erreur de compilation... Par contre, je possede plusieurs setupapi.lib au niveau de VS et du WDK, comment le compilateur choisit-il? Serait-ce une erreur de version de la librarie?

@BruNews :  j'ai utilisé et générer un projet grâce a ton application, mais cela n'a rien donné de mieux...

Je continue a me prendre la tête dessus, si vous voulez de plus amples informations afin de m'aider, n'hésitez pas
Encore merci  !

Bonne Prog
Commenter la réponse de lesdis