我想从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