既存の C++ プロジェクトを 64 ビット Windows にアップグレードする
C++Builder 64 ビット Windows アプリケーションの開発 への移動
BCC32 ベースの既存プロジェクトは、BCC64 で正常にコンパイルできるように、あるいは両方のプラットフォームで同時に同じコードベースを使用できるように、更新する必要があります。 これらのプロジェクト関連およびツール関連の相違点に加えて、BCC64 はより厳密なコンパイラでもあることに注意してください。
目次
オブジェクト ファイルとライブラリ ファイルの形式
- BCC32 とその関連ツールでは、
.obj
ファイルと.lib
ファイルで OMF を使用します。 - BCC64 では、
.o
ファイルと.a
ファイルで ELF を使用します。
各ツールで適切な拡張子を使用できるように、オブジェクト ファイルやライブラリ ファイルの拡張子をなるべく取り除かなければなりません。 必要なら、カスタム スクリプトの場合のように、バージョンを検出し、それに基づいて拡張子を場合分けするようにします。
#pragma link
#pragma link
文で指定されたファイルに拡張子が付いている場合は、それらの拡張子を取り除く必要があります。 各コンパイラにより、適切な拡張子が付加されます。
たとえば、次のような文を使用しているコントロール パネル アプリケーションは、
#pragma link "Ctlpanel.obj"
以下のように更新する必要があります。
#pragma link "Ctlpanel"
さらなる情報については、「#pragma link」を参照してください。
#pragma comment
ライブラリの場合、#pragma comment(lib ..)
を使うと最も良く、次のようになります:
#pragma comment(lib, "library-name") // Looks for library-name.lib in WIN32 and library-name.a in WIN64
#include <windows.h>
Windows API を使用するアプリケーションでは、以下の文を明示的に含める必要があります。
#include <windows.h>
BCC32 では windows.h のインクルードは必須ではありませんが、BCC64 では windows.h が必須で、#include についてより厳密な扱いがなされます。
さらなる情報については、「#include」を参照してください。
NO_STRICT マクロ
NO_STRICT の型チェック方式は BCC64 ではサポートされていません。 使用している既存のプロジェクトがある場合には、それを削除しなければなりません。
詳細については、「C++ アプリケーションでの厳密な型チェックの使用」を参照してください。
WebBroker プロジェクトの更新
#pragma link
を上記のように変更します。