要求: 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'
|