Получить строку из метода dll на C++ в .net
От: Alexys Россия  
Дата: 21.03.11 19:39
Оценка:
Может подскажете как из dll C++ вернуть строку в методе?

имеем C++
extern "C" MYAPI_API char* GetStringFromDll(void);

MYAPI_API char* GetStringFromDll()
{
  return "Testing";
}


на C#
[System.Runtime.InteropServices.DllImport("My.dll")]
public static extern IntPtr GetStringFromDll();

не хочет работать
IntPtr ptr = GetStringFromDll();
string str = Marshal.PtrToStringAuto(ptr);

------------------------------------------
или
extern "C" MYAPI_API int GetStringFromDll2(char* result);

MYAPI_API int GetStringFromDll2(char* result)
{
  strcpy_s(result, 7,  "Testing");
  return 0;
}


на C#

[System.Runtime.InteropServices.DllImport("My.dll")]
public static extern int GetStringFromDll2(string result);

GetStringFromDll2
string result= "";
GetStringFromDll2(result);


возвращается та же пустая строка (((

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