Может подскажете как из 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);
возвращается та же пустая строка (((
Что делать? Как вернуть строку из С++ длл ?