2008-10-09 10 views
0

Mon entreprise dispose d'une connexion avec GroupWise et Exchange 5.5/2000 +. La logique Exchange 5.5/GroupWise est effectuée à l'aide de wldap32.dll (win32), et le code de connexion est donc dans une classe C++ gérée. Lorsque l'outil de configuration (ou le service backend) essaie de charger la DLL construite sur ce projet C++ géré sur ma boîte de développement XP, cela fonctionne très bien. Dans les zones QA/Customer Windows 2003, une exception FileLoadException est générée.FileLoadException sous Windows 2003 pour un fichier C++ dll géré

Tout d'abord, cela fonctionnait normalement. Deuxièmement, j'ai validé le même code de travail sur ma boîte échoue sur la boîte de qa.

Comment puis-je déterminer la cause de cette exception?

Répondre

1

Avez-vous changé votre environnement de développement récemment? En particulier avez-vous installé un service pack ou une nouvelle version de Visual Studio?

Il semble que vous liez sur un environnement d'exécution C++ qui n'est pas disponible sur le serveur du client. Vous pouvez utiliser l'Observateur d'événements Windows pour identifier le chargement de la DLL, ou si cela ne s'affiche pas, utilisez depends.exe pour voir quelles DLL d'exécution sont des dépendances pour votre code managé. Microsoft a migré vers l'installation côte-à-côte pour gérer «DLL hell», ce qui permet d'installer plusieurs versions d'une DLL (côte à côte) simultanément sur des installations Windows et de charger les applications version correcte de la DLL lors de l'exécution. Les versions récentes de Visual Studio utilisent cette technologie, donc je suppose que c'est la cause de votre incompatibilité "soudaine".

+0

Dépendance walker (depends.exe) est votre ami ici, ainsi que de savoir quelles sont les dépendances que vous avez. C'est le cas le plus commun. – Nick

Questions connexes