C++Builder XE以降でatlbase.hをインクルードするとコンパイルエラーが発生する

提供: Support
移動先: 案内検索

概要

C++Builder XE以降のバージョンで、 ActiveX フレームワークは、従来のバージョンで利用していたアクティブ テンプレート ライブラリ(ATL)ではなく Delphi ActiveX ライブラリ(DAX)へ依存するように変更されました。 そのためXE以降では、atlbase.hをインクルードしているソースをコンパイルすると、以下のようなエラーメッセージが表示されます。

atlbase.h(5): You must copy ATL files from an earlier version of BDS [$(BDS)\include\atl\*.*] to use ATL

なお、XEの時は、以下の方法で対処できました。

  • C++Builderの旧バージョンからATL関連のファイルをコピーする
  • ($BCB_Home)\include\windows\vcl\vclhew.hpp
  • ($BCB_Home)\include\windows\sdk\atlディレクトリごと、旧バージョンから上記に該当するファイルを見つけて、C++Builder XEの同じディレクトリへコピーし、プロジェクトをビルドし直す

しかしながら、上記は継続的なサポートが保証されない方法でした。そのためC++Builderの旧バージョンから移行される場合、従来のコンパイラ(bcc32)はもとより、bcc64やbcc32cといったClangコンパイラも新たに利用可能となりますが、今後も同じ方法で対処できる保証が無いため、前述したDAXへ移行することを推奨いたします。

参考情報

C++Builder では ActiveX と COM に DAX を使用