Я пытаюсь прочитать двоичный файл в VB6, который был создан в C ++ и наоборот.
Есть ли какие-либо преобразования типов данных, о которых мне нужно беспокоиться при переходе с C ++ на VB6 и наоборот?
Какой эквивалентный тип в C ++ для логического типа данных VB6?
Вот моя структура C ++:
struct FooBarFileC
{
long int foo;
int bar;
};
Вот мой тип в VB6:
Public Type FooBarFileVB
foo As Long
bar As Integer
End Type
Мой код для чтения в двоичном файле в vb6:
Dim fooBarvb As FooBarFileVB
Dim strOptionsFileName As String
strOptionsFileName = "someFile.bin"
If Dir(strOptionsFileName) <> "" Then
file_length = FileLen(strOptionsFileName)
Else
file_length = 0
End If
fileNumber = FreeFile
If (file_length <> 0) Then
Open strOptionsFileName For Binary Access Read Lock Read Write As #fileNumber
Get #fileNumber, , fooBarvb
Close #fileNumber
End If
foo = foobarvb.foo
bar = foobarvb.bar
Мой код для чтения двоичного файла в c ++:
long int foo;
int bar;
FooBarFileC cFooBar;
ifstream fin("someFile.bin", ios::binary);
fin.read((char*)&cFooBar, sizeof(cFooBar));
fin.close();
foo = cFooBar.foo;
bar = cFooBar.bar;
Мой код для записи двоичного файла в VB6
foobarvb.foo = foo
foobarvb.bar = bar
If Dir(strOptionsFileName) <> "" Then
file_length = FileLen(strOptionsFileName)
Else
file_length = 0
End If
fileNumber = FreeFile
If (file_length <> 0) Then
Open strOptionsFileName For Binary Access Write Lock Read Write As #fileNumber
Put #fileNumber, , fooBarvb
Close #fileNumber
End If
Мой код для записи двоичного файла в C ++
long int foo;
int bar;
FooBarFileC cFooBar;
cFooBar.foo = foo;
cFooBar.bar = bar;
ofstream fout("someFile.bin", ios::binary);
fout.write((char*)&cFooBar,sizeof(cFooBar));