VB.NET и AVIFIL32

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Serega435
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 23.04.2003 (Ср) 10:38

VB.NET и AVIFIL32

Сообщение Serega435 » 16.07.2003 (Ср) 6:39

У меня вопрос к тем, кто разрабатывал видеоплейеры и т.д.

Пытаюсь перевести свой проект из VB6 в NET, и столкнулся с такими проблемами:

Имею примерно такой код:

<DllImport("avifil32.dll")> Public Function AVIFileInfo(ByVal pfile As Long, ByVal pfi As AVI_FILE_INFO, ByVal lSize As Byte) As Integer
End Function

Public Structure AVI_FILE_INFO
Public dwMaxBytesPerSecond As Integer
Public dwFlags As Integer
Public dwCaps As Integer
Public dwStreams As Integer
Public dwSuggestedBufferSize As Integer
Public dwWidth As Integer
Public dwHeight As Integer
Public dwScale As Integer
Public dwRate As Integer
Public dwLength As Integer
Public dwEditCount As Integer
Public szFileType As String ' (* 64 - VB6)
End Structure
....
Dim p As AVI_FILE_INFO
dim pfile as Long
hr = AVIFileOpen(pfile, "c:\myfile.avi", 0, 0)
hr = AVIFileInfo(pfile, p, Len(p))
.......

Вопросы:
1. Размер структуры AVI_FILE_INFO получается 48 байтов, тогда как в VB6 он был 108 байтов.
2. Открыть-то файл могу, а вот получить информацию - нет. А точнее, выскакивает hr<>0 и p не заполняется.

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 16.07.2003 (Ср) 12:20

Public szFileType As String ' (* 64 - VB6)

посмотри описание изменение НЕТ , там както подругому, я как столкнулся но не помню...
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

G-Hacker
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 01.08.2003 (Пт) 15:31
Откуда: Воронеж

Сообщение G-Hacker » 07.08.2003 (Чт) 10:56

В VB . NET, стало невозможным использовать строки фиксированного размера, размер строки отныне может быть до 2 Гбайт, это во-первых. Во-вторых, ты знаешь, что Integer в VB 6 - Short в VB .NET, а Integer в VB .NET - это Long в VB 6(ну и естественно, размер типа Integer стал больше, чем был в VB 6). Вот вроде бы все причины! :) :) :)


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 38

    TopList