Witam. Mam tu mały oto problemik.
Funkcja instancji z której chce otrzymać return
std::string m_stName;
const char * CInstanceBase::GetNameString()
{
return m_stName.c_str();
}
mój delegate
[UnmanagedFunctionPointer(CallingConvention.ThisCall, SetLastError = true, CharSet = CharSet.Ansi)]
[return: MarshalAs(UnmanagedType.LPStr)]
public delegate string delegateCInstanceBaseGetNameString(IntPtr instance);
Return z funkcji działa dobrze jeśli nie zawiera znaków "żść......". Natomiast jeśli zawiera, pierwsze wywołanie zwraca poprawnie string, nastepne w stylu krzaczków na stałe uszkadzając std::string instancji.
Natomiast jak użyje return type jako IntPtr do char, z czytam byte i przekonwertuje do string działa bez zarzutu