既存の C++ プロジェクトを 64 ビット Windows にアップグレードする

提供: Appmethod Topics
移動先: 案内検索

Appmethod C++ 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 ではサポートされていません。 この方式を使用している既存のプロジェクトがある場合は、NO_STRICT を削除しなければなりません

詳細については、「C++ アプリケーションでの厳密な型チェックの使用」を参照してください。

WebBroker プロジェクトの更新

  • #pragma link を上記のように変更します。

関連項目