首页  编辑  

强制 .NET 程序按32位方式运行

Tags: /计算机文档/软件应用技巧/   Date Created:
在Windows 64位系统下, 如Windows 7(x64),默认情况下 .NET程序会按跨平台方式运行,即自动以64位方式运行,但是如果这个.NET程序有用到一些特别的控件,只能在32位系统下运行的控件,那么以64位的WOW方式就无法运行了,.NET程序可能无法启动或者无法正确运行某些功能,这种情况只能通过强制程序运行在32位方式解决。

如果有源代码,可以在VS .NET中,可以按照 http://blog.smdcn.net/article/114.html 的方式来解决问题,但是如果这个exe不是有源代码,是别人写的程序,我们怎么办呢?这需要使用corflags.exe来修改目标可执行文件的平台标志:http://msdn.microsoft.com/zh-cn/library/ms164699(v=vs.80).aspx ,这个方法需要安装庞大的 .net sdk,其实我们只要修改目标exe文件的偏移0x218(十进制536)字节处的值,从01改成03就好了,用任何一个十六进制编辑器都可以修改。