Страница: 1 |
Страница: 1 |
Вопрос: Проблема перевода своих типов данных с VB.6 VB.NET
Добавлено: 06.03.05 00:40
Автор вопроса: 999 | Web-сайт:
Private Type FILETIME
dwLowDateTime As Integer
dwHighDateTime As Integer
End Type
Private Type WIN32_FIND_DATA
dwFileAttributes As Integer
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Integer
nFileSizeLow As Integer
dwReserved0 As Integer
dwReserved1 As Integer
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
как вот это написать на VB.net, что б работало
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #1
Добавлено: 06.03.05 07:44
Private Structure WIN32_FIND_DATA
Public dwFileAttributes As Int32
Public ftCreationTime As FILETIME
Public ftLastAccessTime As FILETIME
Public ftLastWriteTime As FILETIME
Public nFileSizeHigh As Int32
Public nFileSizeLow As Int32
Public dwReserved0 As Int32
Public dwReserved1 As Int32
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=MAX_PATH
)> _
Public cFileName As String
Public cAlternate As String * 14
End Structure
<StructLayout(LayoutKind.Sequential)> _
Private Structure FILETIME
Public dwLowDateTime As Int32
Public dwHighDateTime As Int32
End Structure
Private Const MAX_PATH As Int32 = 260
Скачай API Viewer 2004
Номер ответа: 2
Автор ответа:
freeloader
ICQ: 50804884
Вопросов: 72
Ответов: 642
Web-сайт:
Профиль | | #2
Добавлено: 06.03.05 15:03
Для начала скажи что тебе нужно сделать этим кодом?
Посмотри пространство имен System.IO - возможно можно сделать намного проще...
Номер ответа: 3
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #3
Добавлено: 06.03.05 15:23
С каких пор Integer(VB6)=Int32(.NET)?
Номер ответа: 4
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #4
Добавлено: 06.03.05 22:41
Х.з. но в ApiViewer'e именно так... я тоже хотел запротестовать но как увидел, весь мой пыл прошел...
Номер ответа: 5
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #5
Добавлено: 07.03.05 14:56
Извините но синтаксис VB.Net в мою голову уже запихнуть сложно - Я пытаюсь
помнить VB6, HTML, JavaScript, VBScript, MASM32, Turbo Pascal, PowerBasic и
их мутации
Вот и пользуюсь API Viewer'ом, а уж как там понаписано - проверять
нехочется, все притензии к программерам Win32api.apv
Номер ответа: 6
Автор ответа:
999
Вопросов: 13
Ответов: 26
Web-сайт:
Профиль | | #6
Добавлено: 10.03.05 18:53
этот тип нужно указать для поиска файла на сервере, при создании фтп клиента
FtpFindFirstFile и InternetFindNextFile:
Private Declare Function FtpFindFirstFile _
Lib "wininet.dll" Alias "FtpFindFirstFileA" ( _
ByVal hFtpSession As Long, _
ByVal lpszSearchFile As String, _
ByRef lpFindFileData As WIN32_FIND_DATA,
ByVal dwFlags As Long, _
ByVal dwContent As Long) As Long
Private Declare Function InternetFindNextFile _
Lib "wininet.dll" Alias "InternetFindNextFileA" ( _
ByVal hFind As Long, _
ByRef lpvFindData As WIN32_FIND_DATA) As Long
Эти функции возвращают ненулевое значение при обнаружении файла и 0, если произошла ошибка. Для того чтобы определить реальная ли это ошибка или просто больше нет файлов нужно, проверить значение Err.LastDllError. Если оно равно ERROR_NO_MORE_FILES (=18), то все нормально, если нет, то дело наше плохо.
Обе этих функции имеют параметр WIN32_FIND_DATA, который представляет собой тип или структуру, определяемую юзером.
Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * 260
cAlternate As String * 14
End Type
Подструктура FILENAME:
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Далее я привожу пример заполнения ListBox файлами и директориями с сервера. Считаем, что вы уже получили FTP хендл c именем hSession.
Private Sub ListFiles()
Dim hFile As Long ‘ This is a file handle
Dim fd As WIN32_FIND_DATA
hFile = FtpFindFirstFile(hSession, “*.*”, fd, 0, 0)
If hFile = 0 Then
If Err.LastDLLError = ERROR_NO_MORE_FILES Then
MsgBox “No files found”
Exit Sub
Else
MsgBox “Some error occurred”
Exit Sub
End If
End If
Do
List1.AddItem fd.cFileName
Loop While InternetNextFile(hFile, fd) <> 0
‘Close the file handle
Call InternetCloseHandle(hFile)
End Sub
Номер ответа: 7
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #7
Добавлено: 12.03.05 07:11
http://www.apiviewer.de/
P.S. Если надо - вышлю руссификатор на 2004 версию (это пока последняя)
Номер ответа: 8
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #8
Добавлено: 13.03.05 00:11
Александр, будь добр - вышли руссификатор на zagzag2003#mail.ru
(руссификатором 2003 некоторые фразы не переводятся)