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'。他のシンボルはヌルです。ここで何が問題なのか教えていただけますか?
ありがとう、ジェーニャ