Страница: 1 |
Страница: 1 |
Вопрос: как етот код должен выглядеть?
Добавлено: 13.03.07 20:37
Автор вопроса: Uksus | ICQ: 407373902
Этот код с ошибками! Как я понял что-то с типами а что с ними сделать не пойму?
dwSize (As Long) As
szEntryName(RAS_MAXENTRYNAME) As Byte
End Type
Private Type RasConn
Dim dwSize As Long
Dim hRasConn As Long
Dim szEntryName(RAS_MAXENTRYNAME) As Byte
Dim szDeviceType(RAS_MAXDEVICETYPE) As Byte
Dim szDeviceName(RAS_MAXDEVICENAME) As Byte
End Type
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
ANDREY Z5Z
Вопросов: 38
Ответов: 125
Web-сайт:
Профиль | | #1
Добавлено: 13.03.07 21:32
dwSize (As Long) As szEntryName RAS_MAXENTRYNAME) As Byte
End Type
Может перед каждым As какая-то переменная пропущена?
Номер ответа: 2
Автор ответа:
Uksus
ICQ: 407373902
Вопросов: 10
Ответов: 23
Профиль | | #2
Добавлено: 14.03.07 08:31
нет вообще код такой
Const RAS_MAXDEVICETYPE As Integer = 16
Const RAS_MAXDEVICENAME As Integer = 128
Const RAS_RASCONNSIZE As Integer = 412
Const ERROR_SUCCESS = 0&
Private Type RasEntryName
dwSize As Long
szEntryName(RAS_MAXENTRYNAME) As Byte
End Type
Private Type RasConn
dwSize As Long
hRasConn As Long
szEntryName(RAS_MAXENTRYNAME) As Byte
szDeviceType(RAS_MAXDEVICETYPE) As Byte
szDeviceName(RAS_MAXDEVICENAME) As Byte
End Type
Private Declare Function RasEnumConnections Lib "rasapi32.dll" Alias "RasEnumConnectionsA" (lpRasConn As Any, lpcb As Long, lpcConnections As Long) As Long
Private Declare Function RasHangUp Lib "rasapi32.dll" Alias "RasHangUpA" (ByVal hRasConn As Long) As Long
Private gstrISPName As String
Public ReturnCode As Long
Public Sub HangUp()
Dim i As Long
Dim lpRasConn(255) As RasConn
Dim lpcb As Long
Dim lpcConnections As Long
Dim hRasConn As Long
lpRasConn(0).dwSize = RAS_RASCONNSIZE
lpcb = RAS_MAXENTRYNAME * lpRasConn(0).dwSize
lpcConnections = 0
ReturnCode = RasEnumConnections(lpRasConn(0), lpcb, lpcConnections)
If ReturnCode = ERROR_SUCCESS Then
For i = 0 To lpcConnections - 1
If Trim(ByteToString(lpRasConn(i).szEntryName)) = Trim(gstrISPName) Then
hRasConn = lpRasConn(i).hRasConn
ReturnCode = RasHangUp(ByVal hRasConn)
End If
Next i
End If
End Sub
Public Function ByteToString(bytString() As Byte) As String
Dim i As Integer
ByteToString = ""
i = 0
While bytString(i) = 0&
ByteToString = ByteToString & Chr(bytString(i))
i = i + 1
Wend
End Function
Private Sub Command1_Click()
Call HangUp
End Sub
А именно в этих строках определяются типы данных заданные пользователем (Type выделенно а прога пишет что то типа: немогу определить чё ты хотел)
Private Type RasConn
Номер ответа: 3
Автор ответа:
Bonapart
ICQ: 175256
Вопросов: 32
Ответов: 108
Web-сайт:
Профиль | | #3
Добавлено: 14.03.07 12:24
конкретно у меня ошибку здесь выдаёт szEntryName(RAS_MAXENTRYNAME) As Byte
если исправить на
szEntryName(256) As Byte
то всё правильно
Номер ответа: 4
Автор ответа:
Uksus
ICQ: 407373902
Вопросов: 10
Ответов: 23
Профиль | | #4
Добавлено: 14.03.07 12:59
ну не работает он ни в 6 Васике ни в Net
Номер ответа: 5
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #5
Добавлено: 14.03.07 16:50
у мну всё пашет в шестом васике:
Const RAS_MAXENTRYNAME As Integer = 256
Private Type RasEntryName
dwSize As Long
szEntryName(RAS_MAXENTRYNAME) As Byte
End Type
Private foo As RasEntryName
возможно ты прогишь в дотнете, там структура объявляется как structure