Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Проблема перевода своих типов данных с VB.6 VB.NET Добавлено: 06.03.05 00:40  

Автор вопроса:  999 | Web-сайт: wolf002.narod.ru
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
<StructLayout(LayoutKind.Sequential)> _
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-сайт: freeloader.folder-pro.net
 Профиль | | #2
Добавлено: 06.03.05 15:03
Для начала скажи что тебе нужно сделать этим кодом?
Посмотри пространство имен System.IO - возможно можно сделать намного проще...

Ответить

Номер ответа: 3
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #3
Добавлено: 06.03.05 15:23
С каких пор Integer(VB6)=Int32(.NET)?

Ответить

Номер ответа: 4
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #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-сайт: wolf002.narod.ru
 Профиль | | #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 некоторые фразы не переводятся)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам