0

我得到了一个遗留的 Visual C++ 项目,我需要在 Embarcadero RAD Studio XE7 中编译它,但是我在构建它时遇到了问题。目前,我对 ATL 库有疑问,项目的某些组件需要这些库:

  • 我已经将所有 ATL 文件从复制include/atlwindows/sdk/atl

  • 该项目需要atlsafe.h. 我已经安装了具有这些标头的 Visual Studio 2013,但我确实了解如何正确使用它们。如果我复制atlsafe.hwindows/sdk/atl,我开始收到很多与过时有关的错误atlbase.h。一旦我更换atlbase.h,我开始收到更多错误(预期),依此类推。

通常,问题是,我如何正确配置我的 C++Builder 项目以用于 ATL,以及从哪里获得正确版本的标头?例如,对于 boost 标头,问题很容易解决(构建正确的版本并将标头的路径添加到-I指令)。

4

1 回答 1

2

Embarcadero 在 C++Builder XE 中放弃了对 ATL 的支持,将 ATL 替换为 Delphi ActiveX 框架 (DAX)。为了在 XE 及更高版本的 C++Builder 项目中使用 ATL,您需要从早期的 C++Builder 版本中获取 ATL 支持文件(头文件和库二进制文件),您不能使用 Visual Studio 中的支持文件。如果您无法访问较旧的 C++Builder 版本,那么您将不得不忘记 ATL 并将项目迁移到 DAX。

于 2019-07-30T21:13:38.233 回答