导航:首页 > 源码编译 > vs32位系统编译x64程序

vs32位系统编译x64程序

发布时间:2023-05-17 18:40:20

1. vs有没有32位与64位的区别

visualstudio没有专门的64位版,但32位版可以在64位系统上面正常使用。

由于操作系统内存分配的不同,导致软件开发过程中,需要编译不同版本的软件。

编译程序根据需要选择不同的编译环境,x86和win32为32位程序,x64为64位程序,可以选择不同的编译条件形成不同位的软件。

代码中的基本数据类型,会根据操作系统的位数来分类内存大小。

如int型在32位操作系统下为4字节,在64位系统下为8字节。

因此在64位上对int型数据操作,编译生成32位的程序,有可能导致int型越界,软件出现问题,32位的程序在64位操作系统上运行,由于64位操作系统的寻址和偏移问题,也有可能导致程序在运行过程中,计算结果与32位系统不一致。

64位操作系统理论上能够箭筒32位和64位软件,32位操作系统不能运行64位程序。

在vs中,x64生成的程序只能在64位系统中运行。如果用户用的是32位的系统(比如XP),则运行不了程序。

x32生成32位程序,由于64位系统也能运行32位的程序,所以这个选项跟AnyCPU一样可以同时运行在两种系统中,但效率没有AnyCPU高,因为64位的软件跟CPU交互的数据要比32位的接近大一倍。

所以当要把项目代码转移到另一台计数机时,就要考虑这个问题。假如原来选择的目标平台是x64,新电脑的系统是32位,当你按F5调试运行时,则跑不起来,这时把目标平台改成AnyCPU或者x32就能解决了。

(1)vs32位系统编译x64程序扩展阅读:

如果项目引用有32位的dll(c++编译生成的),则只能选择32位平台,否则也会报错,整个项目要保持一致。

在项目调试的过程中,可以看到32位与64位程序加载的dll不同。

32位程序从system32中加载dll;而64位程序从syswow64中加载dll。

64bit程序在x86-64处理器上并不会带来明显的性能提高,它只是增加了处理器的寻址范围,可以使用更大的内存。而对于VS这种并非内存敏感的程序,并不十分需要迁移到64bit下。

另外,还有一个历史原因,就是微软一直没有完成64bit下的JIT调试器的EditandContinue功能,这是因为64bit的JIT是C++团队做的,和原生CLR团队的32bitJIT有很多不同。

如果微软推出了64bit的VS,那么调试的体验会受到限制,这也是为什么微软一直以来没有推出64bitVS的原因。

2. C++程序32位编译成64位程序,有些项目无法设置为X64

试试先把各项目的 x64 删除,然后再创建

3. vs2019win32项目转成win64

vs2019win32项目转成win64:在工程迹汪掘属性设置中作如下修改:
1. 在“C/C++”——“预处理器”中姿核将WIN32改为_WIN64,并且放在最前面,这样才确保链接的是64位的Windows SDK。
2. 在“链接器”——“高级”——“目标计算机”将“MachineX86(/陵裤MACHINE:X86)”改为“MachineX64 (/MACHINE:X64)”。
3.代码中有些地方需要修改:
(1)'static_cast' : cannot convert from'void (__cdecl CWindowTip::* )(UINT)' to 'void (__cdecl CWnd::* )(UINT_PTR)' E:2015prog2-.cpp 128 1 AutoTargetDetection

4. 怎么把vs2008创建的32位的程序改为64位的

点击对应的项目,右键-》属性中:选择“生成”页签,“目标平台”选择“X64”

5. 如何编译64位dll程序,有几种情况,在32位XP上用VC++6.0或者VS2010该怎么编译64位的dll。

在64位的操作系统上用vs软件编译的dll默认就是64位。
在32位XP上用VC++6.0编译64位的dll,需要安装sdk(最新版本是sdk2003),在开始菜单——sdk——open build environment window——windows server 2003 64-bit build environment——set win svr 2003 x64 build env进入命令行,从命令行调用msdev,将vc选项里的include和lib的第一个默认路径设为sdk目录下64位头文件和库的路径,编译出的dll似乎就是64位的了。这个是从网页上看到的,没实践过。
在32位XP上使用vs2010就简单多了,新建一个项目(解决方案),加入代码,设置X64,编译生成即可。

6. 将win32的程序编译为x64,其中win32用到了kernel32.dll这样的dll,请问在x64位中可以继续使用吗

kernel32.dll, user32.dll, netapi32.dll 等库在 64 位 windows 系统、64 位应用程序中依然可以使用,这是因为针对 32 位程序和 64 位程序,windows 提供了两个不同的版本,分别位于系统目录 system32 和 syswow64 下面,虽然两个目录下的库文件使用了相同的名字,但实际上是不一样的。

7. 32位系统编译的程序能在64位下运行吗

在32位的系统不能运行64位的程序,在64位的系统上可以运行32位的程序。
在32位下开发编译和在64位下开发编译是没有区清余别空早的,重点在于生成的时候的选项,生成什么平台软件。斗正雀是X86还是X64还是anycpu

8. 32位机能用64位编译器编译源程序吗有64位的VS了么

32位系用64位,只有在梦里才可以,在64位系统下搞32位,那是客观存在的。

9. 32位的电脑怎么编译64位程序

方法/步骤

1、VS2010新建的VC++项目默认的组件平台是32位。

10. 32位编译器可以编64位程序吗

VS不可以,不提供交叉编译器
gcc可以
但是需要自行编译(至少我不知道是否有人提供),把host设为i686-w64-mingw32
target设为x86_64-w64-mingw32 !

阅读全文

与vs32位系统编译x64程序相关的资料

热点内容
液压油可压缩吗 浏览:944
源泉cad加密文件 浏览:125
银河v10驱动重编译 浏览:889
电脑上文件夹右击就会崩溃 浏览:689
右美维持算法 浏览:938
php基础编程教程pdf 浏览:219
穿越之命令与征服将军 浏览:351
android广播重复 浏览:832
像阿里云一样的服务器 浏览:318
水冷空调有压缩机吗 浏览:478
访问日本服务器可以做什么 浏览:434
bytejava详解 浏览:450
androidjava7 浏览:386
服务器在山洞里为什么还有油 浏览:887
天天基金app在哪里下载 浏览:976
服务器软路由怎么做 浏览:293
冰箱压缩机出口 浏览:229
OPT最佳页面置换算法 浏览:645
网盘忘记解压码怎么办 浏览:853
文件加密看不到里面的内容 浏览:654