Чтение / запись двоичных файлов VB6 и VC ++ - PullRequest
0 голосов
/ 12 января 2012

Я пытаюсь прочитать двоичный файл в 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));

1 Ответ

0 голосов
/ 24 мая 2012

Вы видели эти ссылки? VB6 типы данных C # типы данных

ура,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...