Проблема: вылетаю по несоответствию типа, либо получаю абракадабру, когда заполняю структуру из BIN вайла.
Бинарь, из которого читаю, прикладываю.
Структрура переделана из С:
- Код: Выделить всё
struct WNDINFO
{
LONG exStyle;
LONG hInstance;
LONG hwndParent;
LONG style;
LONG id;
LONG userData;
LONG wndProc;
LONG x0;
LONG x1;
wchar_t className[32];
wchar_t text[32];
};
Размерность структуры = MSG + мои данные - итого 192 байта. Сам MSG 28 байт
Вот код, который должен структуру заполнять, но этого не делает (( :
- Код: Выделить всё
Option Explicit
Public Type WNDInfo
ExStyle As Long
hInstance As Long
hWndParent As Long
Style As Long
ID As Long
UserData As Long
WndProc As Long
x0 As Long
X1 As Long
ClassName As String * 32
Text As String * 32
End Type
Public BIN_File_Info() As WNDInfo
Public Sub Get_BIN_File_Struct(ByVal BIN_File As String)
Dim k
ReDim BIN_File_Info(0)
Open BIN_File For Binary Access Read As #1
k = Input(CInt(frm_GUICodeGen.Text1.Text), #1)
Do While Not EOF(1)
'On Error GoTo jump
ReDim Preserve BIN_File_Info(UBound(BIN_File_Info) + 1)
With BIN_File_Info(UBound(BIN_File_Info))
k = Input(4, #1): .ExStyle = CLng(k) 'Расширенный стиль
k = Input(4, #1): .hInstance = CLng(k) 'Инстансь
k = Input(4, #1): .hWndParent = CLng(k) 'hWnd родителя
k = Input(4, #1): .Style = CLng(k) 'Стиль
k = Input(4, #1): .ID = CLng(k) 'ID
k = Input(4, #1): .UserData = CLng(k) 'UserData
k = Input(4, #1): .WndProc = CLng(k) 'WndProc
k = Input(4, #1): .x0 = CLng(k) 'x0
k = Input(4, #1): .X1 = CLng(k) 'x1
k = Input(32, #1): .ClassName = k 'ClassName
k = Input(32, #1): .Text = k 'Text
End With
Loop
jump:
Close #1
End Sub
На строку:
- Код: Выделить всё
k = Input(CInt(frm_GUICodeGen.Text1.Text), #1)
внимания не обращайте. Это эксперемент со смещением был. Читать надо с самого начала файла.
Заранее, спасибо!