VBA bin файл запись струткры C++ чтение
От: DenisKDA  
Дата: 22.12.04 08:31
Оценка:
Привет,
Надо под VBA сохранить структуру в бинарный файл, а потом прочитает ее из под с++
Делаю следующие
VBA:
Private Type TestBinRecord    ' Define user-defined type.
    NamePac As String * 20
    A As Integer
    B As Integer
    H As Integer
    Kappa As Integer
    Thikness As Integer
    Smax As Integer
End Type

Private NewType As TestBinRecord

Private Sub CommandButton1_Click()
NewType.NamePac = "TEst"
NewType.A = 2
NewType.B = 2
NewType.H = 2

Open "c:\TestBinFile.dat" For Binary Access Write As #1
' Close before reopening in another mode.
Put #1, , NewType
Close #1
End Sub


C++:
struct{

    char NamePac[20];
    int A;
    int B;
    int H;
    int Kappa;
    int Thikness;
    int Smax;

} TestBinRecord;

FILE *fbread = fopen("c:\\TestBinFile.dat","rb");

fread(&TestBinRecord,sizeof(TestBinRecord),1,fbread);

fclose (fbread);

В результате считывается фигня, и что делать?

22.12.04 20:30: Перенесено модератором из 'C/C++' — Павел Кузнецов
Re: VBA bin файл запись струткры C++ чтение
От: Elena_ Россия  
Дата: 22.12.04 09:26
Оценка:
Здравствуйте, DenisKDA, Вы писали:

DKD>В результате считывается фигня, и что делать?


Integer — Integer variables are stored as 16-bit (2-byte) numbers ranging in value from -32,768 to 32,767


По поводу String см., например, MSDN API Development with Visual Basic Chapter 6: Strings
Пользователь — друг программиста!
Re[2]: VBA bin файл запись струткры C++ чтение
От: DenisKDA  
Дата: 22.12.04 10:19
Оценка:
Здравствуйте, Elena_, Вы писали:

E_>Здравствуйте, DenisKDA, Вы писали:


DKD>>В результате считывается фигня, и что делать?


E_>

E_>Integer — Integer variables are stored as 16-bit (2-byte) numbers ranging in value from -32,768 to 32,767


E_>По поводу String см., например, MSDN API Development with Visual Basic Chapter 6: Strings


Угу спасибо, разобрался с типами и плюс еще в С++
надо было отлючить выравнивание на структуру

#pragma pack(push,1)

struct juststruct{

//    Byte NamePac[20];
    short A;
    short B;
    short H;
    short Kappa;
    short Thikness;
    short Smax;
    double test;

};
#pragma pack(pop)

Често, идея понятна но как работет непонял.

Еще вопрос а double во всех системах 8 byte?
Re[3]: VBA bin файл запись струткры C++ чтение
От: glyph  
Дата: 23.12.04 15:45
Оценка:
Здравствуйте, DenisKDA, Вы писали:

DKD>Еще вопрос а double во всех системах 8 byte?

Все типы платформенно-зависимы. Сто раз тут говорилось, что при использовании ЯВУ не следует делать предположений о размерах типов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.