ReadInt32, BinaryReader, c ++ - PullRequest
       4

ReadInt32, BinaryReader, c ++

0 голосов
/ 23 января 2011

У меня есть двоичный байтовый массив.В C # его очень легко читать с помощью BinaryReader и ReadInt32 (это то, что мне нужно).как это:

reader = new BinaryReader ( new MemoryStream( data ), new UnicodeEncoding() );

m_headerVersion = reader.ReadInt32();
m_width         = reader.ReadInt32();
m_height        = reader.ReadInt32();
...

Как я могу сделать то же самое в C ++ (MFC)?Что я должен включить, чтобы сделать это?

Спасибо

Ответы [ 2 ]

1 голос
/ 23 января 2011

Насколько я понимаю, вы используете неуправляемый C ++, и вы должны написать его самостоятельно.В конце концов, C + + и C # разные языки.

Но вы можете сделать нечто подобное, используя потоки STL.

std::stringstream reader;
reader << data;
reader >> m_headerVersion;
reader >> m_width;
reader >> m_height;
0 голосов
/ 23 января 2011

Если у вас есть данные в

char* data;

Вы можете получить их в int32_t, приведя их, то есть:

int32_t m_headerVersion = int32_t(*data);
int32_t m_width  = int32_t(*(data + sizeof(int32_t)));
int32_t m_height  = int32_t(*(data + 2*sizeof(int32_t)));

Это основная идея.Вы должны быть в состоянии обернуть эту функцию в простой в использовании интерфейс в стиле потока.

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