我想做一个互联网检查器,但我不知道这个 PinvokeStackImbalance 有什么问题。实际上,代码是为 Visual Basic 2008 编写的,但我使用的是 Visual Basic 2010。
WebTest = CBool(InternetGetConnectedState(dwflags, 0&))
问题出在哪里?顺便说一句,这是一个模块。
我想做一个互联网检查器,但我不知道这个 PinvokeStackImbalance 有什么问题。实际上,代码是为 Visual Basic 2008 编写的,但我使用的是 Visual Basic 2010。
WebTest = CBool(InternetGetConnectedState(dwflags, 0&))
问题出在哪里?顺便说一句,这是一个模块。
当您对函数使用错误的声明时,您将收到 MDA 警告。这在 VB.NET 中很常见,互联网上有很多旧的 VB6 声明在 VB.NET 中不起作用。一个明显的问题迹象是这个特殊的函数,它需要两个 DWORD 类型的参数,如果你在声明中看到Long,那么你有一个糟糕的 VB6 参数。
从 Pinvoke Interop Assistant 工具或 pinvoke.net 网站获取相当可靠的声明:
Private Declare Function InternetGetConnectedState Lib "wininet.dll" _
(ByRef lpdwFlags As Int32, ByVal dwReserved As Int32) As Boolean
Private Enum ConnectionStates
Modem = &H1
LAN = &H2
Proxy = &H4
RasInstalled = &H10
Offline = &H20
Configured = &H40
End Enum
去:
然后取消选中以下选项:
之后就没有消息了。