我想制作一个互联网检查器,但我不知道这个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
Run Code Online (Sandbox Code Playgroud)