TValue::From関数を使用し、実行時パッケージをしない64ビットアプリを実行すると、AccessViolationが発生する

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

対象となる製品

  • C++Builder 10.4.x
  • C++Builder 11.0


問題

プロジェクトのオプション設定:

  • ターゲットプラットホーム=Windows 64ビット
  • IDEメニューの[プロジェクト]-[オプション]-[パッケージ]-[実行時パッケージ]の”実行時パッケージを使ってリンク”=false


コード例:

void __fastcall TForm1::Button1Click(TObject* Sender)
{

  TValue value = TValue::From<UnicodeString>(L"テスト");

}


上記の条件でTValue::From関数を使用したプログラムををビルドし、アプリケーションを実行すると、AccessViolationが発生することがあります。


ただし、intのようなプリミティブ型では発生せず、AnsiString、UnicodeStirngなどの文字列型のテンプレートのみ発生します。

解決

こちらの症状は、C++Builderの不具合として報告されており、C++Builder 11.1で修正済みです。