2012-06-04 4 views
1

인터넷 검사기를 만들고 싶지만이 PinvokeStackImbalance의 문제점을 알지 못합니다. 사실, 코드는 Visual Basic에서 2008되었다,하지만 난`는PInvokeStackImbalance가 감지되었습니다 - Visual Basic 2010

어디에 문제가있어 (&) 0 InternetGetConnectedState (dwflags) Visual Basic에서 2010

WebTest에 = CBool를 사용하고 계십니까? Btw, 모듈이에요.

+1

수입 신고서를 사용했음을 보여줄 수 있습니까? – Steve

답변

5

함수에 잘못된 선언을 사용하면 해당 MDA 경고가 표시됩니다. VB.NET에서 꽤 일반적인 것은 VB.NET에서 작동하지 않는 인터넷에 떠 다니는 많은 오래된 VB6 선언들이 있습니다. 문제의 확실한 징후는이 특정 함수입니다. DWORD 형식의 두 인수를 취합니다. 선언에 길이가 인 경우 잘못된 VB6이 발생합니다.

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 
+0

이것은 정답입니다, 저에게 도움이되었습니다, 감사합니다! –

1

로 이동 :

합리적으로 신뢰할 PInvoke를 상호 운용성 지원 도구 또는 pinvoke.net 웹 사이트에서 선언 받기 - 예외 -

  1. 디버그를 관리 디버깅 도우미

을 선택하고 다음 옵션을 선택 취소합니다.

  1. ContextSwitchDeadlock 그 후

  • PInvokeStackImbalance, 더 이상 메시지를 표시합니다.

  • 관련 문제