Я пытаюсь вызвать функцию C#, чтобы получить строковый результат, но он не работает. Как получить строку от C# до C с помощью функции C. Кто-нибудь помогите?
C#
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
public delegate void GetStrCallback(StringBuilder str);
[DllImport("...")]
public extern static void SetStrCallback(GetStrCallback cb);
...
public static void Handle(StringBuilder str)
{
str.Append("AAAAAA");
}
SetStrCallback(Handle);
C
typedef void(__stdcall * GetStrCallback)(const char* str);
GetStrCallback _getStrFunc = NULL;
extern __declspec(dllexport) void SetStrCallback(GetStrCallback cb)
{
_getStrFunc = cb;
}
...
void GetCSharpStr()
{
char temStr[1024] = "";
_getStrFunc(temStr); // Call C# function to get result, But temStr is empty. How to get it???
}