У меня есть CString cs на стороне C++ и IntPtr ip на стороне C#, которая содержит значение cs через механизм маршалинга.Как (если необходимо) освободить динамическую память при маршалинге CString с C++ на C#?
Тогда я просто получаю нужную строку как Marshal.PtrToStringAnsi (ip), и все работает нормально, но мне интересно, должен ли я и если должен, как я могу удалить неуправляемую память, занятую ip, т. Е. Cs?
SO, вы говорите, что на стороне C++, что функция должна выглядеть следующим образом: CString FreeString (CString CS) {...} Если дело обстоит именно так, как эта функция должна быть реализована? –
Нет, он должен выглядеть как 'void FreeString (CString cs)'. Что касается реализации, может быть, какой-то эксперт на С ++ может дать свои два цента. –