我目前正在尝试 P/Invoke 到 HID(在 Unity 中(因此使用 .Net 2.0))。但是,当调用SetupDiGetDeviceInterfaceDetail时,它返回错误代码1784。
注意:这是第二次调用,因为第一次调用应该(并且确实)返回错误 122,并设置所需的缓冲区大小。
..Replaced With Full Source Below..
Run Code Online (Sandbox Code Playgroud)
使用的结构:
..Replaced With Full Source Below..
Run Code Online (Sandbox Code Playgroud)
目前未使用 DETAIL_DATA,因为我发现我应该使用 IntPtr 来代替。
如何摆脱错误 1784 并获取/迭代我的设备路径?另外,我读到我应该使用“null”,而不是 dData,但这也会出错(无法将 null 转换为 DEVICE_INTERFACE_DATA)
编辑:完整来源
调试输入.cs:
using UnityEngine;
using System.Collections;
using System;
using System.Runtime.InteropServices;
using Microsoft.Win32.SafeHandles;
using Assets;
public class DebugInput : MonoBehaviour {
static readonly IntPtr INVALID_HANDLE_VALUE = new IntPtr(-1);
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () { …Run Code Online (Sandbox Code Playgroud)