大家好!
最近, 我做了一个小程序, 需要将这个32位程序重新编译成64位的, 这个32位程序是用VC6.0开发的, 为了避免安装巨大的VS.NET2005/2008,
我仍然用VC6.0成功地编译出了64位应用程序, 为此, 写了一点经验与大家分享!
注:需要一点英文知识, 有时间我会译出.
环境:
OS: Vista 64bit
IDE: Visual C++ 6.0
1. 下载/安装最新的windows 2003 server R2 platform sdk
2. 参照下面链接, 一步步完成编译设置.
References:
http://www.eggheadcafe.com/forumarchives/vclanguage/Aug2005/post23130822.asp
3. 链接参数一定要设置为:
/machine:AMD64
否则, 会出现2.中类似"冲突"错误.
4. 链接出错, 通常是RTC, cookie错误, 参见下面链接设置:
http://support.microsoft.com/?scid=kb%3Ben-us%3B894573&x=15&y=14
6. 链接中如出现 Error Spawing bscmake.exe
去掉勾选编译参数(Project settings > c/c++): Generate Browse Info
7. 如果你是动态库和主应用程序链接, 必须保持用的是相同运行时库, 例如: 全部都是Multi-Threads DLL
没有在32位OS下编译64位程序, 有时间再试试.
了解更多有关64位程序架构的开发,参考最新的MSDN,
下面的文章也不错:
http://www.codeproject.com/KB/system/64BitOSAndPortingIssues.aspx