Microsoft Windows Platform SDK提供了文档、示例程序、头文件、库和相应工具,可用作开发Windows下的应用程序,开发出的程序可运行在基于x86、x64和IA64(安腾)处理器的Windows Server 2003 SP1、Windows XP SP2、Windows XP x64 Pro Edition和Windows 2000之上;同时,Platform SDK微软提供免费下载。如果要开发64位 .NET程序,还必须安装 .NET Framework 2.0 Software Development Kit (SDK) (x86)。
在Platform SDK的安装过程中,可依据个人开发的需要选择所需安装的项目:



| 目录 | 内容 |
| \Bin Platform | SDK工具 |
| \Bin\Win64 | 用于生成基于安腾(Itanium)架构应用程序的工具,包括一个x86-IA64的跨平台交叉编译器 |
| \Bin\Win64\AMD64 | 用于生成基于x64架构应用程序的工具 |
| \Bin\Win64\ia64 | 用于生成基于安腾(Itanium)架构应用程序的工具 |
| \Bin\Win64\x86\AMD64 | 用于生成基于x64架构应用程序的工具,包括一个x86-AMD64的跨平台交叉编译器 |
| \Help | Platform SDK文档 |
| \Include | 头文件和IDL文件,包含ATL、CRT、MFC |
| \Lib | 输入库和TLB文件 |
| \Lib\ia64 | 支持基于安腾(Itanium)架构的输入库和TLB文件 |
| \Lib\AMD64 | 支持AMD64架构的输入库和TLB文件 |
| \License Platform | SDK许可信息 |
| \NoRedist\Win64 | 支持安腾(Itanium)架构的DLL和PDB文件,不可再发布 |
| \NoRedist\Win64\AMD64 | 支持AMD64架构的DLL和PDB文件,不可再发布 |
| \Redist\Win64 | 支持安腾(Itanium)架构的DLL文件 |
| \Redist\Win64\AMD64 | 支持AMD64架构的DLL文件 |
| \Samples Platform | SDK开发示例 |
| \Src | 支持64位开发的ATL、CRT、 MFC源代码 |
编译器简介
Platform SDK中的编译器是微软公司提供的跨平台交叉编译器,可运行在基于x86或x64处理器的Windows XP和Windows Server 2003之上,并支持WoW64仿真层,提供跨平台交叉编译功能:

·此PSDK C++编译器不能用于Visual Studio的集成开发环境之中,只能用于命令行编译。
·此PSDK C++编译器不支持CLR代码生成。完全支持64位平台CLR代码生成的编译器是Visual Studio.NET 2005中的Visual C++编译器。
·此PSDK C++编译器可运行在Win64或Win32系统的电脑上。
·此PSDK C++编译器支持6.0版本的MFC/ATL、STL、CRT。如果想使用Visual Studio 2003中的MFC/ATL、STL、CRT,请联系libs7164@microsoft.com,以获取这些库。
·此PSDK C++编译器带有一些不同的编译器选项(参见下文)。
因为此处编译器和链接器的大多数选项都与Visual Studio x86 32位版本上的相同,在此主要描述不同之处:
编译器选项
| 选项 | 动作 |
| /fp:fast | 生成最快速度的浮点代码,不能与其他任何/fp:<option>一同使用。 |
| /fp:precise | 生成与IEEE兼容并优化过的浮点代码,不能同时使用/fp:fast或/fp:strict,但/fp:except除外。 |
| /fp:strict | 生成保守的浮点代码,隐含/fp:except。不能同时使用/fp:fast或/fp:precise,但/fp:except- 除外。 |
| /fp:except[-] | 打开或关闭可靠浮点例外。不能同时使用/fp:fast。 |
| /homeparams | 强制所有的参数写入堆栈,包括那些通过寄存器传递的参数。 |
| /errorReport:<prompt|send|none> | 此选项通过内部编译器错误(ICE)机制设置编译器的错误报告行为。prompt - 通过ICE,提示用户发送一个错误报告给微软。send - 通过ICE,一个错误报告直接发送给微软。none - 不发送错误报告给微软。 |
| /RTC1 /RTCc /RTCs /RTCu Platform | SDK不支持运行时检查。如果需要此项功能,请使用Visual Studio 2005中的编译器和库。 |
链接器选项
| 选项 | 动作 |
| loosefpmath.obj | 使用此选项将会为浮点计算打开FTZ(flush-to-zero)和DAZ(denormals-as-zero)。默认情况下,是不使用此选项,并且FTZ(flush-to-zero)和DAZ(denormals-as-zero)是关闭的。 |
需注意的事项
·iostream不支持__int64:
要避免如下形式的代码
#include <iostream.h>
__int64 i64;
void main( )
{
cout << i64;
}
·在基于AMD64和x64的编译器上,已不支持_asm。
下面,我们以一个经典的"Hello world"程序来演示如果在32位平台上,开发64位应用程序。
打开Microsoft Visual C++ 2005 Express Edition,在"文件(File)"菜单中,选取"新建(New)"à"工程(Project)",在打开的对话框左边窗体中,选择工程类型为 "Win32"(我们此处不是真的要生成一个Win32类型的程序,而是利用这个自动化过程而已,最终程序为x64类型),输入工程名,点击"下一步(Next)" à在此不勾选"使用预编译头precompiled header"à"完成(Finish)",此时可看到已生成一个工程,修改代码如下:
#include <iostream>
using namespace std;
int main(int argc, char * argv[])
{
cout << "Hello World!" << endl;
return 0;
}
