VB.NET: Implementing RasGetErrorString

B

bhc

i'm trying to wrap a RAS library, and i've found pretty solid examples
for most RAS API calls...except for RasGetErrorString. i've seen a C#
example, but can't seem to get the right declaration and use in VB.NET.
the current attempt is:
---
Private Declare Auto Function RasGetErrorString Lib "rasapi32.dll"
( _
ByVal ErrorValue As Integer, _
ByRef ErrorString As String, _
ByVal BufferSize As Integer _
) As Integer

'And then in a button click somewhere...
Dim errstr As String
Dim err As Integer = 639
Dim lbuff As Integer = 256

Debug.WriteLine(RasGetErrorString(err, errstr, lbuff))
Debug.WriteLine(errstr)
 
B

bhc

nevermind, i got it (sorry, just impatient i guess :).

Private Declare Auto Function RasGetErrorString Lib "rasapi32.dll"
( _
ByVal uErrorValue As Integer, _
ByVal lpszErrorString As IntPtr, _
ByVal cBufSize As Integer _
) As Integer
 
H

Herfried K. Wagner [MVP]

bhc said:
i'm trying to wrap a RAS library, and i've found pretty solid examples
for most RAS API calls...except for RasGetErrorString. i've seen a C#
example, but can't seem to get the right declaration and use in VB.NET.
the current attempt is:
---
Private Declare Auto Function RasGetErrorString Lib "rasapi32.dll"
( _
ByVal ErrorValue As Integer, _
ByRef ErrorString As String, _
ByVal BufferSize As Integer _
) As Integer

'And then in a button click somewhere...
Dim errstr As String
Dim err As Integer = 639
Dim lbuff As Integer = 256

Debug.WriteLine(RasGetErrorString(err, errstr, lbuff))
Debug.WriteLine(errstr)
---

the call to RasGetErrorString fails with an unhandled
System.ExecutionEngineException - even if i trap it in a Try...Catch
block (?). any help would be appreciated...

\\\
Private Declare Auto Function RasGetErrorString Lib "rasapi32.dll" ( _
ByVal uErrorValue As Int32, _
ByVal lpszErrorString As String, _
ByVal cBufSize As Int32 _
) As Int32
///
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top