Импорт функции и возврат строки
От: ZeBbra  
Дата: 23.07.10 11:10
Оценка:
Есть дллка на C++. в C# вызывается функция из этой dll — ReturnString().
Функция должна вернуть строку.

Люди советуют — выделить память в C# под строку и передать указатель в ReturnString. Там заполнить буффер. Но тут придется делать два вызова, потому что размер строки неизвестен...

еще вариант:
Выделение и удаление в C++. То есть после вызова функции ReturnString, обработать строку, а затем вызвать другую функцию, скажем, ClearStr из длл, которая освободит память.

или, как сделано сейчас:
в С++ заведена глобальная Std::string. В которую записывается строка, а в C# возвращается string.c_str(). Перед каждым вызовом ReturnString делать string.clear() и писать в переменную заново...

Все ли варианты валидны?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.