这几天在网上看到了一些关于C#程序编译的时候选择AnyCpu、X86、X64的编译方式,对程序的可用内存大小不同的文章,有几个疑问
- X86程序,不管系统内存有多少,对程序而言,可用的内存只有4GB,操作系统还要预留2GB,实际程序可用的只有2GB吗?
- 如果用户的电脑内存是64位的,但是内存只有4GB,对于操作系统而言,可用的内存可能只有3GB多一点,可能更少,那程序是不是就很容易发生OUT OF MEMORY的异常了
后面看到文章里面也有可以用editbin 来让X86的程序可用内存超过2GB的方法,但是这样是不是程序还是不能拥有系统的全部内存?
我们公司有一个比较老的软件,应该是.netframework3.5开发的,开发的时间应该是2004年,最终在2013年就没更新了,软件会用到TWAIN协议来操作扫描仪扫描的
想问一下,如果在有源代码的情况下,就算升级到最新的.netframework4.x 编译成X64版本的,就目前的扫描仪驱动来说,是不是也没办法被64位程序使用?比如佳能的DR-G1100、DR-G7550C、DR-G2090、DR-G2090S、DR-M160 II、DR-M260这些扫描仪是不是都没有纯64位的驱动?
还请大佬解答,万分感激
|