随着Windows 7和WinServer 2k8的推动,很多人都开始换上新系统,当然,也有不少朋友还是用上了64位的操作系统,但是问题也随之而来,本来Dotnet使用IL不需要考虑系统是多少位的,会自动根据系统DotNet框架来选择,但实际上并没有那么简单,于是乎一些.net开发的程序在x64下就开启不能了。
虽然AI_Player君说,没必要解决,但是昨天还是看了一下,了解了错误的类型,错误实际上是一个程序同时使用32位和64位造成的,也就是通过.net编写的程序,系统能够正常的把你使用64位运行,但是你如果你调用了控件,或者其他32位的组件,你的程序就会Crash。
解决思想:
虽然我们无法改变调用组件的类型,但是我们的程序可以强制告诉系统以32位运行(进程管理器中看到后面会标注x32),这样就不会出现在64位和32位同时存在的情况,于是问题解决。

解决方法:
[color=grey]0、确认你的系统是32位系统(是否必须未知)
[b]1、Visual Studio 打开你的项目
2、菜单-》生成-》配置管理器
3、活动解决方案平台下拉框-》新建
4、键入或选择新平台-》 x86-》确认
5、编译你的程序[/b]

[color=blue]特别注意:如此处理出来的程序,如果需要加壳,请确保壳支持x86模式,否则加完壳后此方法失效。
然后把你的程序拿到64位的系统上测试看看吧~
本方法由 SmdCn 在 Windows Server 2008 R2 下测试成功,其他系统暂时不了解
如果你也有遇到类似问题,或者发现本方法由什么问题,欢迎与我交流
Email: smdcn (at) qq.com (at=@)