我有以下 C++ 方法的签名。最后一个参数应将设备名称作为 2 字节的 unicode 字符串返回。
int GetDeviceIdentifier(DWORD deviceIndex, WCHAR** ppDeviceName);
我使用以下签名包装到 C# 中。它有效,但我得到的字符串很奇怪。难道我做错了什么?
[DllImportAttribute("StclDevices.dll", EntryPoint = "GetDeviceIdentifier", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode)]
public static extern int GetDeviceIdentifier(uint deviceIndex, StringBuilder ppDeviceName);