VS2005下的64位编程与移植

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VS2005下的64位编程与移植
VS2005下的64位编程与移植
Mar 18th, 2012 | Comments
最近有个项目需要将32位下的代码移植到64位下,之前没有做过这方面的工作,特别向同事请教了这方面的知识,在此记录下来。

VS2005下64位编程环境
1.VS2005安装时要勾选X64 Compilers and Tools,如果安装时忘记了,则可以重新打开VS2005安装程序来添加;
2.VS2005X64编程环境设置
3.在VS2005的Build菜单下选择Configuration Management;
4.在Configuration Management对话框中的Active solution platform下选择New;
5.在New Solution Platform中的Type or select the new platform下选择x64,OK。

对于没有汇编的程序,上述设置就可以了。

但如果代码中有汇编代码,则还需要Project下的Custom Build Rules中切换到MASM64 Bulid Rule。

缺省情况下,VS2005没有提供到MASM64 Bulid Rule,需要将原来的masm.rules(在C:\Program Files\Microsoft Visual Studio 8\VC\VCProjectDefaults文件夹下)文件拷贝一份,重新命名为masm64.rules,并在VS2005中修改rule中的ml.exe为ml64.exe 即可。

上面设置好之后,就可以在Win32和X64平台间自由切换,但要注意的是,切换的时候也需要将Custom Build Rules切换到相应的平台下。

VS2005下64位编程的注意事项
•X64平台下,不支持内联汇编,必须将汇编代码提取到独立的.asm文件中去;
•指针不再是32位,而是64位,汇编代码中涉及32位寄存器间
接寻址的,移植时需要修改;
•32位的寄存器被扩展为64位,又增加了一些新的寄存器;
•函数参数的传递与32位下汇编不再相同,而是前4个参数分别通过RCX, RDX, R8, R9来传递,其他的参数通过堆栈来传递;
上述的应该是最基本的,要在64位平台中进行编程,还需要了解更多的这方面的知识。

Posted by Shane Mar 18th, 2012 C++, X64。

相关文档
最新文档