Vb.net 检测到PinvokesTack不平衡-Visual Basic 2010
我想做一个网络检查器,但我不知道这个Pinvokestack有什么问题。实际上,代码是为VisualBasic2008编写的,但我使用的是VisualBasic2010 WebTest=CBool(InternetGetConnectedState(dwflags,0&))Vb.net 检测到PinvokesTack不平衡-Visual Basic 2010,vb.net,visual-studio-2010,Vb.net,Visual Studio 2010,我想做一个网络检查器,但我不知道这个Pinvokestack有什么问题。实际上,代码是为VisualBasic2008编写的,但我使用的是VisualBasic2010 WebTest=CBool(InternetGetConnectedState(dwflags,0&)) 问题出在哪里?顺便说一句,它是一个模块。当您对函数使用错误声明时,您将收到MDA警告。这在VB.NET中非常常见,在Internet上有很多旧的VB6声明,这些声明在VB.NET中不起作用。一个明显的问题是这个特殊的函数,它
问题出在哪里?顺便说一句,它是一个模块。当您对函数使用错误声明时,您将收到MDA警告。这在VB.NET中非常常见,在Internet上有很多旧的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
当您对函数使用错误的声明时,您将得到MDA警告。这在VB.NET中非常常见,在Internet上有很多旧的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
转到:
在此之后,不再显示消息。您能显示所用导入的声明吗?您能显示所用导入的声明吗?