我有一个 32 位 ATL C++ in-proc COM 服务器灵魂。如何将其移植到 64 位 Windows?我的意思是如何让 VC++7 发出 64 位代码?Visual Studio 2003 可以吗?
3 回答
您需要一个 64 位编译器,它将长编译为 64 位长。在 VS2005 中发布的版本就可以了。更高版本的 Visual C++ 和 Windows SDK 具有更高版本的编译器。在标准或更低版本的 Visual C++ 中禁用了 64 位支持,但在免费提供的 Windows SDK 中没有。英特尔等其他编译器提供商有自己的支持 Visual Studio 和 64 位的产品。
64 位支持是VS 2005 新增的,又名 VC++8
看看VSItanium。从描述:
Visual Studio .NET 2003 的 VSItanium 插件允许使用多个外部编译器编译 Win32 Visual C++ 项目,实际上是 Microsoft SDK 64 位 Itanium 和 AMD Opteron 编译器以及 Intel C++ Itanium 编译器。
关于编译器选择——如果由于依赖 cl 13(VS 2005 使用 cl 14)而不能迁移到较新的 VS 版本,您应该能够在 WDK 3790.1830、IIRC 中找到支持 IA-64 和 amd64 的 cl 13 . 应该有一个支持 64 位的 cl 13 的旧 SDK,但我不知道是哪一个。
如果您的项目使用较新的编译器构建良好,您基本上可以自由选择 WDK 和 SDK 版本。