Форум программистов, компьютерный форум CyberForum.ru

не могу считать из потока данные - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перенос в другую единицу трансляции http://www.cyberforum.ru/cpp-beginners/thread340712.html
Доброго дня! имею main файл содержащий ... #include "Worker.hh" bool prepared = false;
C++ Доступ к protected полям Добрый день! Очень не часто пишу что-то на C++ и вот такой момент настал :) Существует некий абстрактный класс содержащий указатель на функцию. Возможно ли из функции на которую будет ссылаться указатель получить доступ к protected полям класса? Т.е. class A { protected: int aa; public: http://www.cyberforum.ru/cpp-beginners/thread340700.html
Проблемы с dll C++
Прошу помощи. Сам написал dll, функции из нёё исправно вызываются из приложения на С++, но во время работы все время скачет ошибка MVC++ Runtime Library! Runtime error! R6031! Сама dll: #include <windows.h>
C чего начать??? C++
Я еще школьник но уже хочу сейчас узнать хотябы азы языка программирования. По форуму многие советую изучать с++, но если у меня нету азов в программирование с чего мне начать??? И какую литературу мне надо читать?
C++ Помогите создать(( http://www.cyberforum.ru/cpp-beginners/thread340650.html
нужно создать файл с расширением MFC, но у меня его нету( как сделать, чтобы можна было сделать? вот скриншот http://www.cyberforum.ru/attachment.php?attachmentid=91144&stc=1&d=1312922769
C++ Строки Входной поток содержит набор слов, отделённых друг от друга произвольным количеством пробелов. scanf("%s",strok) наткнувшись на первый пробел в строке ставит на его месте NULL, и вся введенная информация после первого пробела не учитывается. Как быть? подробнее

Показать сообщение отдельно
Саааня
0 / 0 / 0
Регистрация: 10.08.2011
Сообщений: 9

не могу считать из потока данные - C++

10.08.2011, 11:25. Просмотров 581. Ответов 1
Метки (Все метки)

Ребят,помогите разобраться.
Вот код.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <iostream>
#include <Windows.h>
#include <Ole2.h>
#include <Objbase.h>
 
using namespace std;
 
void DecToBin(unsigned int x){ 
   do 
      { 
        if (x%2==0)
        cout<<"0";
        else
        cout<<"1";
        x/=2;
      } while (x>=1);
}
 
//////////////////////////////////////////////////////////////////////////////////
 
int main()
{
    //OLECHAR filename[100];
    //wcscpy_s( filename, L"Storage.xls" );
    const OLECHAR filename[] = L"Storage.xls";
    const WCHAR workbook[] = L"Workbook";
    const WCHAR ctls[] = L"Ctls";
    const WCHAR usernames[] = L"UserNames";
    const WCHAR revlog[] = L"RevisionLog";
    const WCHAR* StreamNames[] = { workbook, ctls, usernames, revlog };
 
    LPSTORAGE pIStorage = NULL;
    LPSTREAM pIStreams[4]; 
    HRESULT rez;
    rez = StgOpenStorage( filename , NULL,  STGM_SIMPLE | STGM_READ | STGM_SHARE_EXCLUSIVE, NULL, 0, &pIStorage );
    if( rez == S_OK )
    {
        cout << "Storage opened successfully" << endl << endl;
        HRESULT rez2;
        for( int i = 0; i < 4; i++ )
        {
            rez2 = pIStorage->OpenStream( StreamNames[i], NULL,  STGM_SHARE_EXCLUSIVE , 0,  &pIStreams[i]);
            if ( rez2 == S_OK )
            {
                cout << "Stream " << (i+1) << " opened successfully"<< endl;
                rez2 = STG_E_ACCESSDENIED;
                HRESULT rez3;
                int *ptr = (int*) malloc( 2*sizeof(int));
                ULONG uCount;
                rez3 = pIStreams[i]->Read(ptr, 2, &uCount);
                if( rez3 == S_OK ) 
                {
                    cout << " Reading datafrom stream "<< i+1 << " successfull" << endl;
                    //cout << " Actually read from stream "<< uCount<< " bytes:" << endl;
                    for ( int k = 0; k < 2; k++ )
                    {
                        //cout << *(ptr+k);
                        DecToBin(*(ptr+k));
                        cout << " " << endl;
                    }
                }
                else cout << "Error read from stream " << endl;
            }
            else cout << "Error open stream "<< i+1 << endl;
        }
    }
    else cout << "Error open storage" << endl;
    return 0;
}
Открываем файл Excel, находим в нем поток workbook и считываем из него первые 32 байт.
первые 16 из них должны составлять запись BOF:

но вот чет числа которые у меня выводятся никак под эту структуру не подходят
Миниатюры
не могу считать из потока данные  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru