C++ におけるマルチデバイス アプリケーションについての考慮事項

提供: RAD Studio
移動先: 案内検索

マルチデバイス アプリケーションについての考慮事項 への移動

使用可能な C/C++ ヘッダー ファイル

RAD Studio では、異なるターゲット プラットフォームごとに別個の C/C++ ヘッダー ファイルが用意されています。これらのファイルは、標準の検索パスである $(BDS)\include にあります。

ヘッダー ファイルを SDK 検索パスから使用するには、「[リモート パス項目の追加]または[リモート パス項目の編集] 」を参照してください。 SDK を [ツール|オプション...|環境オプション|SDK マネージャ で管理します。

Windows の場合

32 ビット Windows および 64 ビット Windows 用のヘッダー ファイルは $(BDS)\include\windows にあります。


$(BDS)\include\windows 内のサブディレクトリ
説明
   \crtl C/C++ RTL ヘッダー ファイル(.h)。 詳細は、「C ランタイム ライブラリ リファレンス」を参照
   \fmx FireMonkey のマシン生成ヘッダー ファイル(.hpp)
   \rtl Delphi RTL のマシン生成ヘッダー ファイル(.hpp)
   \sdk Microsoft Windows SDK ヘッダー ファイル(.h)
   \vcl VCL のマシン生成ヘッダー ファイル(.h および .hpp)

macOS の場合

macOS 用のヘッダー ファイルは、開発用 PC 上の $(BDS)\include\osx にあります。


$(BDS)\include\osx 内のサブディレクトリ
説明
   \fmx FireMonkey のマシン生成ヘッダー ファイル(.hpp)
   \rtl Delphi RTL のマシン生成ヘッダー ファイル(.hpp)

iOS の場合

iOS 用のヘッダー ファイルは、開発用 PC 上の $(BDS)\include\ios にあります。


$(BDS)\include\ios 内のサブディレクトリ
説明
   \crtl C/C++ RTL ヘッダー ファイル(.h)。詳細は、「iOS C RTL」を参照
   \fmx FireMonkey のマシン生成ヘッダー ファイル(.hpp)
   \rtl Delphi RTL のマシン生成ヘッダー ファイル(.hpp)

Android の場合

Android 用のヘッダー ファイルは、開発用 PC 上の $(BDS)\include\android にあります。


$(BDS)\include\android 内のサブディレクトリ
説明
   \crtl C/C++ RTL ヘッダー ファイル(.h)。詳細は、「Android C RTL」を参照
   \fmx FireMonkey のマシン生成ヘッダー ファイル(.hpp)
   \rtl Delphi RTL のマシン生成ヘッダー ファイル(.hpp)

さまざまなプラットフォームでのフレームワークの使用

プラットフォーム Delphi RTL
(C/C++ RTL とは異なる)
FireMonkey VCL
32 ビット Windows
Checkmark.svg
Checkmark.svg
Checkmark.svg
64 ビット Windows
Checkmark.svg
Checkmark.svg
Checkmark.svg
64 ビット iOS
Checkmark.svg
Checkmark.svg
Android
Checkmark.svg
Checkmark.svg
Linux
Checkmark.svg

フレームワークの使用

iOS と Android の場合

iOS と Android のフレームワークに関連する BCCIOSARM64/BCCAARM と LD オプションを、次の表示に示します:

ツール オプション 説明
BCCIOSARM64 および BCCAARM 64 ビット iOS デバイス、および Android 用 C++ コンパイラ -isysroot iOS SDK および Android NDK のルートを指定します。通常は %IOS_SDK_ROOT% または %ANDROID_NDK_ROOT% に設定されます。
BCCIOSARM64 64 ビット iOS デバイス用 C++ コンパイラ -F フレームワーク パスを指定します。通常は %IOS_SDK_ROOT%\System\Library\Frameworks" に設定されます。
LD - BCCIOSARM64 64 ビット iOS デバイス -syslibroot 論理ルート ディレクトリの場所を指定します。論理ルート ディレクトリとは、iOS SDK のルートを表す開発用 PC(Windows)上のディレクトリです。
LD - BCCAARM Android 用 --sysroot 論理ルート ディレクトリの場所を指定します。論理ルート ディレクトリとは、Android NDK のルートを表す開発用 PC(Windows)上のディレクトリです。
LD -framework リンクするフレームワークを指定します。たとえば、-framework Foundation と指定すると、アプリケーションが Foundation フレームワークにリンクされます。

IDE の[プロジェクト|オプション...|C++ コンパイラ|ディレクトリと条件定義では、[フレームワーク ルート ディレクトリ]プロジェクト オプションを使用して、フレームワークのインクルード パスに追加するディレクトリを指定することができます。

iOS および Android での文字列リテラル char16_t と wchar_t

macOSiOS では、char16_t は、wchar_t と等価ではありません(Windows では等価です):

  • Windows では、wchar_tchar16_t は両方とも 2 バイト文字です。
  • ところが、iOS、Android では wchar_t は 4 バイト文字です。

このため、UTF-16 の定数文字列を宣言するには、Windows では Lu のいずれかの接頭辞を使用しますが、iOS、Android では u 接頭辞を使用します。

Windows の例:

UnicodeString(L"Text"), UnicodeString(u"Text")

iOS、Android の例:

UnicodeString(u"Text")

ただし、iOS、Android で文字列リテラルに L 接頭辞を使用しても間違いではありません。 その場合は、UTF-32 の定数文字列が UTF-16 の文字列に変換されます。

互換性のためには、プラットフォームに応じて L または u の接頭辞が付加される定数文字列を記述する _D マクロを使用します。以下に例を示します。

UnicodeString(_D("Text"))

モバイル プラットフォームについての詳細は、「文字列リテラルに関するリンカの警告の解決」を参照してください。

関連トピック

関連項目