我想制作一个互联网检查程序,但我不知道这个PinvokeStackImbalance有什么问题。实际上,代码是针对Visual Basic 2008年提出的,但我真的使用的Visual Basic 2010PInvokeStackImbalance被检测到 - Visual Basic 2010
WebTest的= CBool函数(的InternetGetConnectedState(dwFlags中,0 &))
在哪里的问题?顺便说一句,这是一个模块。
我想制作一个互联网检查程序,但我不知道这个PinvokeStackImbalance有什么问题。实际上,代码是针对Visual Basic 2008年提出的,但我真的使用的Visual Basic 2010PInvokeStackImbalance被检测到 - Visual Basic 2010
WebTest的= CBool函数(的InternetGetConnectedState(dwFlags中,0 &))
在哪里的问题?顺便说一句,这是一个模块。
当您使用该函数的错误声明时,您将获得该MDA警告。这在VB.NET中很常见,在因特网上有很多旧的VB6声明,这些声明在VB.NET中不起作用。一个确定的麻烦迹象是这个特殊的函数,它需要两个类型为DWORD的参数,如果在声明中看到长的,那么你的VB6版本就不好了。
获得来自的PInvoke互操作助理工具或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
这是正确的答案,这对我有用,谢谢! –
转到:
,然后取消选中:
之后,没有更多的消息。
你能显示导入使用的声明吗? – Steve