Сборка C ++ CLR управляемой DLL

0

Можете ли вы помочь мне решить эту ошибку:

Изображение 174551

Значения, которые я передаю, это тип String ^, и я фактически передаю значения в классе шаблона, но показывает ошибку

Теги:
managed

1 ответ

1
Лучший ответ

Начнем с того, что вы пытаетесь передать имя пользователя управляемой памяти неуправляемой функции.

String^ s = gcnew String("sample string");
IntPtr ip = Marshal::StringToHGlobalAnsi(s);
const char* str = static_cast<const char*>(ip.ToPointer());

Console::WriteLine("(managed) passing string...");
NativeTakesAString( str );

Marshal::FreeHGlobal( ip );

ссылка: http://msdn.microsoft.com/en-us/library/22e4dash.aspx

  • 0
    Точно .. Спасибо за указание на это
  • 0
    Есть несколько помощников для маршалинга общих типов, таких как строки. Я обновил свой ответ, найдя его при быстром поиске.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню