2011-03-16 3 views
3

Question à la communauté SO. J'ai une bibliothèque C++ avec le code source complet et je suis capable de le compiler en mode 32 et 64 bits. Cependant, pour appeler le code à partir de .NET, je dois choisir 32 ou 64 bits, forçant ainsi mon application à être soit 32 ou 64 bits. J'ai décidé que je devais vivre avec ce problème ... mais je suis tombé sur quelque chose qui me donne de l'espoir. J'ai remarqué que je peux référencer "kernel32.dll" dans une fonction externe et le programme fonctionne très bien à la fois en 32 et 64 bits. Est-ce que quelqu'un sait comment cela est fait?Utilisation de kernel32 dans .Net

Merci!

Répondre

3

Il est une fonctionnalité de Windows sur Windows 64 (WOW64): le File System Redirector

Vous ne pouvez pas vraiment l'utiliser pour vos propres bibliothèques, car il est seulement pour le dossier System32. (Ne pas même penser à mettre vos DLL dans System32.)

En utilisant SetDllDirectory pourrait aider, mais je ne suis pas sûr.

+0

C'est parfait! SetDllDirectory fonctionnera simplement en le définissant sur x86 ou x64 lors de l'exécution. Je l'ai juste essayé et ça fonctionne comme un charme. Merci beaucoup! – Terry

+0

@Terry: Oh cool! Heureux que ça a aidé! – Mehrdad