grx29
Messages postés1Date d'inscriptionmardi 3 juin 2008StatutMembreDernière intervention 3 juin 2008
-
3 juin 2008 à 11:43
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 2010
-
3 juin 2008 à 18:04
bonjour,
j'ai un exe en C# (ou C++ meme pb) (VS2005) qui utilise une dll en C++ managé CPP1.dll (VS2005) qui appelle un tas de dll non managés CPP2.dll et CPP3.dll. tout marche correctement.
je copie l'ensemble du repertoire (/debug pour l'exemple) sur une autre machine sur laquelle il y aussi V2005 installé (meme config de machine donc).
l'exe plante au "chargement" de la dll managé (car il ne trouve pas une des dll qu'appelle CPP1.dll, qui doit etre un appel implicite autre que CPP2.Dll et CPP3.dll)
une autre facon de faire le test est de revenir sur la premiere machine ou tout se passe bien et on change le nom d'une des dll non managé (CPP3.Dll en CPP333.Dll par exemple) qui est appelé par CPP1.dll. On a alorsle meme type d'erreur (crash au chargement de CPP1.Dll).
Mon probleme général est de trouver un moyen (ou un espion, une application tierce genre la pile d'appel) de savoir quels sont les Dll appelés par CPP1.dll pendant son chargement. car manifestement on voit pas dans la pile d'appel les Dll non managés.
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 3 juin 2008 à 18:04
essaie de compiler ta dll avec toutes les bibliothèque genre CRT liées en statique et regarde si ça marche;
tu peux aussi utiliser Dependency Walker pour voir les dépendences de ta dll, encore qu'il ne détectera pas les appels dynamiques (enfin je crois pas).
Que donne tout ceci?