From within a C# application(Visual Studio 2008) i am calling a win32 dll using DllImport. Everything works fine in Windows XP. However when i use the same exe and dll in Windows 7, the win32 dll fails to get loaded. Do i need to write any extra code to invoke a win32 dll from Windows 7 ?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Before building the C# program, make sure that in Visual studio Configuration Manager you choose "x86" and not "any CPU" as the platform. If any CPU is selected, your C# application runs as a 64bit process in Windows 7 and tries to load the 32-bit win32 dll in to the 64-bit process which would fail as explained here and here.
回答2:
Is your windows 7 64 bit?
Is you .NET exe marked as AnyCPU?
If the answer is yes to the above then you need to mark you .exe as x86 via the Configuration manager in Visual Studio.