C# 32位program如何转成64位(菜鸟提问,求大神解答)

时间:2022-09-20 03:32:11
各位大神,现在我需要用streamreader读入大量的数据,因为32bit的program最多寻址4G,所以我想把这个program变成64bit。或者,还有什么别的方法么?可以在实例化streamreader类的时候,把它变成64位吗?
多谢了 C# 32位program如何转成64位(菜鸟提问,求大神解答)

11 个解决方案

#1


你在32位机上运行不了64位程序

#2


要编译一个程序成64位的话,只需要右击你的项目->属性->编译->目标平台 把X86改为X64即可。。。(我这里是英文版的环境。翻译过来的可能不是非常准确)

#3


忘记说了。如果编译成64位的程序,那么你引用的一些库也必须是64位的,不然调用的时候是会报错滴。。

#4


引用 2 楼 yiko628 的回复:
要编译一个程序成64位的话,只需要右击你的项目->属性->编译->目标平台 把X86改为X64即可。。。(我这里是英文版的环境。翻译过来的可能不是非常准确)

确实是这样的,很准确
lz你改一下就好了,但是只能在64位的系统上运行

#5


那么,在32bit的系统里有办法生成一个64bit的程序么?

#6


引用 5 楼 luhan8629989 的回复:
那么,在32bit的系统里有办法生成一个64bit的程序么?

可以生成,就像楼上几位说的一样
但是没法运行.
所以你想单纯修改程序的位数来提高效率是很不靠谱的一种做法
而且32位系统本身也不支持超过4G的内存,所以你这样做是完全没有意义的.

#7


新建工程,工程属性默认的是ANY CPU,就是你在32位和64位下都可以正常运行(前提是没有加入32位DLL或其他第三方控件等)

#8


再长的数据,你也可以分块读,分块写的

#9


32位系统下开发64位软件,基本是做死的搞法
实在要做死,32位下用虚拟机,虚拟个64位来搞

streamreader读入大量的数据在内存中都超过4G了
就是64位处理起来也是很吃亏啊,用户体验也不好 

建立楼主用其它思路处理数据,比如多线程,临时文件等

#10


什么叫“streamreader读入大量的数据”啊?即使使用仅仅1k字节的缓冲,也可以通过steamreader读入大量的数据,而你说的程序“设计”是什么?

#11


难道说楼主单个文件超过4G?于是使用streamreader读入的时候,因为偏移是int型,最大只能达到4G
但是有没有想过,你在32位系统中,内存只能识别3.2G到3.8G,你的文件根本无法加载到内存中,直接内存溢出

#1


你在32位机上运行不了64位程序

#2


要编译一个程序成64位的话,只需要右击你的项目->属性->编译->目标平台 把X86改为X64即可。。。(我这里是英文版的环境。翻译过来的可能不是非常准确)

#3


忘记说了。如果编译成64位的程序,那么你引用的一些库也必须是64位的,不然调用的时候是会报错滴。。

#4


引用 2 楼 yiko628 的回复:
要编译一个程序成64位的话,只需要右击你的项目->属性->编译->目标平台 把X86改为X64即可。。。(我这里是英文版的环境。翻译过来的可能不是非常准确)

确实是这样的,很准确
lz你改一下就好了,但是只能在64位的系统上运行

#5


那么,在32bit的系统里有办法生成一个64bit的程序么?

#6


引用 5 楼 luhan8629989 的回复:
那么,在32bit的系统里有办法生成一个64bit的程序么?

可以生成,就像楼上几位说的一样
但是没法运行.
所以你想单纯修改程序的位数来提高效率是很不靠谱的一种做法
而且32位系统本身也不支持超过4G的内存,所以你这样做是完全没有意义的.

#7


新建工程,工程属性默认的是ANY CPU,就是你在32位和64位下都可以正常运行(前提是没有加入32位DLL或其他第三方控件等)

#8


再长的数据,你也可以分块读,分块写的

#9


32位系统下开发64位软件,基本是做死的搞法
实在要做死,32位下用虚拟机,虚拟个64位来搞

streamreader读入大量的数据在内存中都超过4G了
就是64位处理起来也是很吃亏啊,用户体验也不好 

建立楼主用其它思路处理数据,比如多线程,临时文件等

#10


什么叫“streamreader读入大量的数据”啊?即使使用仅仅1k字节的缓冲,也可以通过steamreader读入大量的数据,而你说的程序“设计”是什么?

#11


难道说楼主单个文件超过4G?于是使用streamreader读入的时候,因为偏移是int型,最大只能达到4G
但是有没有想过,你在32位系统中,内存只能识别3.2G到3.8G,你的文件根本无法加载到内存中,直接内存溢出