2013-06-09 3 views
-1
Dim strMyNull As New System.Text.StringBuilder 
Dim strCkUrl As String = "http://google.com" 
Dim strCkNmNull As New System.Text.StringBuilder 
Dim mystr As String = Space(192) 
Dim strBuffer As New System.Text.StringBuilder(mystr) 
strBuffer = strBuffer.Append(mystr) 
Dim CkSz As Integer = Len(mystr) 
Dim lReturn As Integer = 0 


lReturn = ias.IEGetProtectedModeCookie(strCkUrl, vbNullString, strBuffer, CkSz, 0) 

ias.IEGetProtectedModeCookie объявлен здесь:Почему я получил ошибку переполнения, когда я делаю это:

<System.Runtime.InteropServices.DllImport("ieframe.dll", SetLastError:=True, CharSet:=System.Runtime.InteropServices.CharSet.Unicode)> _ 
Public Function IEGetProtectedModeCookie(lpszURL As String, lpszCookieName As String, pszCookieData As System.Text.StringBuilder, ByRef pcchCookieData As Integer, dwFlags As UInteger) As UInteger 
End Function 
+0

Этот вопрос может помочь вам: http://stackoverflow.com/questions/6346565/why-iegetprotectedmodecookie-always-return-0x80070057 –

+0

Я прочитал это. Я использую решение этого вопроса. Прежде чем это приведет к другой ошибке. Теперь он выдает исключение переполнения. –

ответ

1

Возвращаемое значение IEGetProtectedModeCookie() объявлен как UInteger, но вы объявили lReturn, как Целое число.

UInteger = 0 до 4294967295

Целое = -2147483648 через 2147483647

Фактическое возвращаемое значение IEGetProtectedModeCookie должно быть целым числом.

так изменить объявление функции для:

<System.Runtime.InteropServices.DllImport("ieframe.dll", SetLastError:=True, CharSet:=System.Runtime.InteropServices.CharSet.Unicode)> _ 
Public Function IEGetProtectedModeCookie(lpszURL As String, lpszCookieName As String, pszCookieData As System.Text.StringBuilder, ByRef pcchCookieData As Integer, dwFlags As UInteger) As Integer 
End Function 
+0

целое число в .net длинное в vb6. Сколько байтов есть? целое число равно 32 бит? –

+0

Целое число в VB6 равно 2 байтам, Integer/UInteger в .NET - 4 байта. – Johnfed

+0

, так что я должен изменить это на lReturn как Long? –

Смежные вопросы