私は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);