marshal_as を調べると、関数呼び出しの 1 つが次の形式を想定しています。
System::String^ const &
const &
マネージ ポインターの後の目的は何ですか?
これは私のためにコンパイルされません:
static std::wstring GetString(const System::String^ value)
{
return msclr::interop::marshal_as<std::wstring>(value);
}
エラー 1 エラー C4996:
'msclr::interop::error_reporting_helper<_To_Type,_From_Type>::marshal_as': この変換はライブラリでサポートされていないか、この変換に必要なヘッダー ファイルが含まれていません。独自のマーシャリング メソッドを追加するには、「方法: マーシャリング ライブラリを拡張する」のドキュメントを参照してください。c:\program files (x86)\microsoft Visual Studio 9.0\vc\include\msclr\marshal.h 203
これは次のことを行います。
static std::wstring GetString(const System::String^ value)
{
return msclr::interop::marshal_as<std::wstring>(const_cast<System::String^>(value));
}