分享

使用VC6.0在32位平台上开发64位程序

 baijeg 2012-05-18

要求:
Microsoft Platform SDK 2001 年 11 月版或更高版本
Visual C++ 6.0
使用 Visual C++ 6.0 IDE 生成 64 位应用程序:
设置 64 位内部版本环境变量:
通过双击SDK文件夹下面的Setup.Exe安装Microsoft Platform SDK 到硬盘任意目录后,安装程序会在开始菜单中生成Microsoft Platform SDK的快捷方式。单击“start->All Programs->Microsoft Platform SDK for Windows Sever 2003 SP1->Open Build Environment Window->Set Windows XP 64 Build Environment->Set Windows XP 64 Build Environment (Debug) 此时将显示一个控制台窗口,其中带有为 64 位内部版本设置的内部版本环境。

从64位内部版本环境启动Visual C++6.0:
启动Microsoft Platform SDK后,直接在命令行输入msdev/useenv,此时将显示 Visual C++ 6.0 IDE,其中已经为 64 位内部版本环境设置了 include、library 和 executable 目录。
注意 如果 Msdev.exe 不在路径中,请将文件夹更改到 \Microsoft Visual Studio\Common\Msdev98\Bin 文件夹,然后运行 Msdev.exe。
Visual C++启动成功后,可以通过菜单Tools->Options->Directories查看Include files和Library file的默认路径应为Microsoft Platform SDK文件夹下的include和lib文件夹。

添加 64 位调试配置:
1. 在 Visual C++ IDE 中,打开现有的 32 位项目(例如,MyApplication)。
2. 在“Build”菜单上,单击“Configurations”。
3. 在“Configurations”对话框中,单击“add”。
4. 在“Add Project Configuration”对话框中,将“Configuration”设置为 Debug64,然后在“Copy settings from”列表中单击“MyApplication– Win32 Debug”。
5. 要添加配置,单击“OK”,然后单击“Close”。

将活动配置设置为 64 位:
1. 在“Build”菜单上,单击“Set Active Configuration”。
2. 单击“MyApplication- Win32 Debug64”,然后单击“OK”。

修改编译器或链接器选项:
一些 Visual C++ 6.0 编译器或链接器选项不适用于 64 位编译器或链接器。要修改这些选项,请执行下列步骤:
1. 在“Project”菜单上,单击“settings”。
2. 在“project settings”对话框中,单击“General”选项卡。在“output directories”下,在“Intermediate files”框和“output files”框中键入 Debug64。
3. 在“C/C++”选项卡上,在“Debug info”列表中选择“Program Database(编译器选项,/Zi)”。在Project Options中去掉/GZ,加入/Wp64。
4. 在“Link”选项卡上,在“Project Options”框中将 /machine:I386 更改为 /machine:AMD64。在Object/library modules中加入bufferoverflowu.lib。
5. 在“View”菜单上,单击“Workspace”。
6. 要从项目中删除 MyApplication.hpj 文件,请在“Workspace”窗口中单击“MyApplication.hpj”文件,然后按 Delete 键。注意 此文件可能已经删除。

生成64位程序:
此时所有配置均已更改完毕,可直接通过F7或build菜单进行编译连接获得所需要的可执行程序或lib文件。

注:在32位机上只能编译连接生成64位程序,而不能进行调试。要调试64位程序必须在64位机上通过专用的调试工具WinDbg(可在微软网站免费下载)进行调试。


按照以上步骤可以编译x64的程序(或库),但在编译的过程会出现一些编译选项的warning,如下,但不编译的库可以被正确调用;可执行程序可以正常执行。还请明白人指点,谢谢。

Compiling...

cl : Command line warning D9002 : ignoring unknown option '/YX'

cl : Command line warning D9035 : option 'GX' has been deprecated and will be removed in a future release

cl : Command line warning D9036 : use 'EHsc' instead of 'GX'

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多