VS2010 を使用して、パブリック インターフェイスで MFC CStrings を使用するアンマネージ C++ DLL の周りに C++/CLI ラッパー DLL を構築しています。アンマネージ C++ DLL には、アクセスする必要があるクラスが含まれています。私の問題は、このクラスに次のような CString 参照を使用するメソッドが含まれていることです。
BOOL GetUnits(eSysOfUnits sysUnit, CString &Unit, Cstring &Format);
私のC++/CLIラッパーで、このようにアクセスしようとしています
BOOL GetUmUnits(eSysU sysunit, String^ %cunit, String^ %format)
{
GetUnits(sysunit, marshal_as<CString>(cunit), marshal_as<CString>(format));
}
これにより、コンパイラエラーが表示されます
C2665: msclr::interop::marshal_as : 3 つのオーバーロードのいずれも、すべての引数の型を変換できませんでした
GetUmUnits は、C# フォームによってアクセスされます。cunit と format は、アンマネージ コードで更新する必要があります。
私は何が間違っているのですか?