A VS2010 használatával C++/CLI burkoló DLL-t építek egy nem felügyelt C++ DLL köré, amely MFC CStrings-t használ nyilvános felületén. A nem felügyelt C++ DLL tartalmaz egy osztályt, amelyhez hozzá kell férnem. A problémám az, hogy ez az osztály CString hivatkozásokat használó metódusokat tartalmaz, például:
BOOL GetUnits(eSysOfUnits sysUnit, CString &Unit, Cstring &Format);
A C++/CLI wrapperben így próbálok hozzáférni
BOOL GetUmUnits(eSysU sysunit, String^ %cunit, String^ %format)
{
GetUnits(sysunit, marshal_as<CString>(cunit), marshal_as<CString>(format));
}
Ez ad nekem egy fordítói hibát
C2665: msclr::interop::marshal_as : a 3 túlterhelés egyike sem tudta konvertálni az összes argumentumtípust
A GetUmUnits egy C# űrlapon keresztül érhető el. a szelvényt és a formátumot frissíteni kell a nem kezelt kóddal.
Mit csinálok rosszul, nem lehetséges?