我想從C++傳遞字符串到c#。從C++傳遞字符串到c#
C++:
extern "C" __declspec(dllexport) void GetSurfaceName(wchar_t* o_name);
void GetSurfaceName(wchar_t* o_name)
{
swprintf(o_name, 20, L"Surface name");
}
C#:
[DllImport("SurfaceReader.dll", CallingConvention = CallingConvention.Cdecl)]
private static extern void GetSurfaceName(StringBuilder o_name);
StringBuilder name = new StringBuilder(20);
GetSurfaceName(name);
但只傳遞第一個符號:name [0] =='S'。其他符號是空值。你能告訴我這裏有什麼問題嗎?
感謝, 振亞
感謝您的詳細解答! – Zheden