Вызовите функцию C#, чтобы получить строку In C - PullRequest
0 голосов
/ 11 февраля 2020

Я пытаюсь вызвать функцию 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???

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...