在32位电脑上写的程序,放到64位电脑上运行,哪里会有不同?

zero_226 2012-05-13 09:41:02
如果我要写一个兼容32和64位电脑都能用的程序,需要考虑哪些问题?
...全文
357 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 2012-05-14
  • 打赏
  • 举报
回复
主要和编译器有关,如果编译器是一样的,运行时不会有很大的区别的吧。
赵4老师 2012-05-14
  • 打赏
  • 举报
回复
在64位Windows下,请使用C:\Windows\SysWOW64\目录下的32位系统常用工具管理32位程序。
nanjun520 2012-05-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

引用 7 楼 的回复:

你需要的是定义一个宏。表示运行的机器是32位或者是64位的。然后把有可能因为32位或者64位不同,而引起差异的函数用宏来标识下。

不行,这个是编译前的,到运行时那些宏都已经死了
[/Quote]

如果这样的话就运行先判断64和32位,然后根据判断在有可能区别的地方,分别实现功能。
赵4老师 2012-05-14
  • 打赏
  • 举报
回复
在64位电脑上的32位虚拟机下运行,几乎没有什么不同。
majia2011 2012-05-14
  • 打赏
  • 举报
回复
用32位的regsvr32去注册
jiandingzhe 2012-05-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

你需要的是定义一个宏。表示运行的机器是32位或者是64位的。然后把有可能因为32位或者64位不同,而引起差异的函数用宏来标识下。
[/Quote]
不行,这个是编译前的,到运行时那些宏都已经死了
W170532934 2012-05-14
  • 打赏
  • 举报
回复
你需要的是定义一个宏。表示运行的机器是32位或者是64位的。然后把有可能因为32位或者64位不同,而引起差异的函数用宏来标识下。
mars_man 2012-05-14
  • 打赏
  • 举报
回复
有些注册表项不太一样,比如win7的64位版本中,注册表就多了一个32位的分支。
如果程序中在一个地方使用了硬编码的信息,而另一个地方使用了某某API接口获取的信息,结果因程序的64位OR32位版本可能会不一致。
zero_226 2012-05-13
  • 打赏
  • 举报
回复
举个例子吧。
我写的一个插件,在32上位上用regsvr32能正常注册,但在64位上就注册不了。
  • 打赏
  • 举报
回复
最好用typdef
Athenacle_ 2012-05-13
  • 打赏
  • 举报
回复
一般来说可以不用考虑,可以在兼容模式下运行
asyuae 2012-05-13
  • 打赏
  • 举报
回复
没有区别吧,使用的编译工具(如 vc6.0)默认都是32位机工作状态吧
昨夜无风 2012-05-13
  • 打赏
  • 举报
回复
数据类型的字节数吧,特别是long和指针,win32他们都是4个字节,win64位是8个字节

64,691

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧