应用程序将原有的CPU x86更改为AnyCPU导致奇妙的问题

WIN7 64 位旗舰版 原本正常运行的项目,由于更改项目属性中的目标平台导致莫名其妙的问题,将原本分配过的内存空间变为NULL;

在项目中出现有违常理的错误,可能与项目中属性设置有关

例如自己在项目中遇到的问题

1  byte[] tempData = new byte[256];

2  其他代码(没有调用过tempData)

3  其他代码(没有调用过tempData)

4 tempData[0] = 1;

编译没有问题,当程序运行到代码4 行时 抛出未将tempData实例化异常 ,当使用断点调试运行,跟踪发现当运行完第二条代码后,tempData就变为null了。同时也启示我们,尽可能晚的,给变量申请内存空间,即当马上用到变量是,才分配,不然有可能出现上面的情况,内存被异常的回收。

解决方案

将项目属性中的生成中的目标平台由AnyCPU 更改为CPU x86

备注:在win7  32 系统上没有出现上述异常


展开阅读全文

没有更多推荐了,返回首页