【发布时间】:2012-12-28 09:34:25
【问题描述】:
这编译没有错误,但是当我运行这个代码部分时出现了一些奇怪的错误:
检测到致命的执行引擎错误 消息:运行时遇到致命错误。错误地址位于线程 0xd7c 上的 0x792062fb。错误代码为 0xc0000005。此错误可能是 CLR 或用户代码的不安全或不可验证部分中的错误。此错误的常见来源包括 COM-interop 或 PInvoke 的用户封送错误,这可能会损坏堆栈。
我尝试如下:
Public Enum PipePolicyType
SHORT_PACKET_TERMINATE = 1
AUTO_CLEAR_STALL = 2
PIPE_TRANSFER_TIMEOUT = 3
IGNORE_SHORT_PACKETS = 4
ALLOW_PARTIAL_READS = 5
AUTO_FLUSH = 6
RAW_IO = 7
RESET_PIPE_ON_RESUME = 9
End Enum
...
...
Dim a As UInt32 = 3000
SetPolicy(1, PIPE_TRANSFER_TIMEOUT, a)
...
...
Public Sub SetPolicy(ByVal ep As Integer, ByVal PolicyType As PipePolicyType, ByVal PolicyValue As UInt32)
end sub
怎么了?
【问题讨论】:
-
用 SetPolicy(1, 3, a) 试试看是否报错。
-
也可以试试
SetPolicy(1, PipePolicyType.PIPE_TRANSFER_TIMEOUT, a) -
如果您能指出这是您正在调用/调用的 Win32 函数,那就太好了
-
实际上没有调用任何东西(这是为了测试而注释掉),但我打算调用 winusb_setpolicy()。现在最初导入的作品,但 const 如下: WinUsb_SetPipePolicy(hWinUSBInterface, ep, &H3, 4, timeout) 我尝试用一些人类可读的 consts 替换参数
-
SetPolicy(1, 3, a) 会给我:重载解析失败,因为没有缩小转换就无法调用可访问的“SetPolicy”:......有两个函数将 PolicyValue 作为布尔值或作为uint32
标签: vb.net