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

Открытие хранилища StgOpenStorage() и чтение данных из потока Read() - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вопрос по циклам и условиям http://www.cyberforum.ru/cpp-beginners/thread387335.html
while(i <= el) { if(mas < A && mas < min) min = mas; i++; } есть такой цикл. поиск минимального при определенном условии. преподователь орет, что надо объеденить условие цикла и условие внутри него. считаю что это бред полный конечно, но как это сделать?
C++ Вывести на экран элемент, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце или наоборот. Для матрицы размером NxM вывести на экран все седловые точки. Элемент матрицы называется седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце или наоборот. Вот код, вроде работает, но я хотел бы избавиться от min=35678 не задавать min конкретным числом. Пожалуйста помогите... #include <iostream> #include <conio.h> int main() { using... http://www.cyberforum.ru/cpp-beginners/thread387327.html
Как удалить лидирующие нули? C++
Программа разворачивает числа, нужно сделать так, что бы лидирующие нули после переворота убирались, не знаю как :( : #include <iostream> #include <cstring> using namespace std; int main() { char buf; while(cout<<"\nwrite string: ",cin.getline(buf,80)) { char *p=buf,tmp;
C++ Удвоить положительные четные элементы
Я написал программу с помощью массивов, мне надо эту же программу написать с помощью функции Заранее спасибо. #include <iostream> #include <conio.h> #include <math.h> using namespace std; int main()
C++ Даны 2 множества точек http://www.cyberforum.ru/cpp-beginners/thread387279.html
Доброй вечер, товарищи! Подскажите идею для решения задачи. Даны два множества точек на плоскости. Выбрать три различные точки первого множества так, чтобы круг, ограниченный окружностью, проходящей через эти три точки, содержал все точки второго множества и имел минимальную площадь.
C++ Нужна программа, описание внутри. Нужна программа, которая сворачивалась бы в трей и при нажатии определенной комбинации клавиш в буфер обмена вставляла определенный текст(типо вырезать и вставить). подробнее

Показать сообщение отдельно
stream
0 / 0 / 0
Регистрация: 19.11.2011
Сообщений: 26
19.11.2011, 20:56     Открытие хранилища StgOpenStorage() и чтение данных из потока Read()
Возникла следующая проблема: при чтении потока stream всё нормально, если строки объявлены в виде статических массивов. А если они объявлены динамически, то работает не корректно. Помогите! Сам не знаю в чем причина. Вот кусок исходника
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
HRESULT hresStream;
LPSTREAM stream = NULL;
//Открытие iStream
hresStream = storage->OpenStream(L"Main MetaData Stream", NULL,STGM_READ|STGM_DIRECT|STGM_SHARE_EXCLUSIVE,0, &stream);
if (!FAILED(hresStream))
{
    cout << "ok open stream" << endl;
}
else cout << "error open stream" << endl;
//Читаем данный из потока
ULONG cb;
 
/*----------------------------Читаем иформацию о IStream-----------------------------------*/
        STATSTG StreamInfo;
        if(stream->Stat(&StreamInfo,STATFLAG_DEFAULT) == S_OK)
                         cout << "ok info read" << endl;
               else
                         cout << "error info read" << endl;
 
 
 
//StreamInfo.cbSize.QuadPart - размер читаемого потока в байтах
 
 
/*------------------------------------------------------------------------------------------*/
 
 
/*------------------Рабочая версия в статике-----------------------------------------------*/
OLECHAR buffer[18000];
hresStream = stream->Read(&buffer,StreamInfo.cbSize.QuadPart, &cb);
char buf[18000];
wcstombs((CHAR*)&buf,(OLECHAR*)&buffer,sizeof(buf));
/*------------------------------------------------------------------------------------------*/
 
/*-----Версия с динамически распределением памяти НЕрабочая---------------------------*/
    /*OLECHAR* buffer = new OLECHAR[StreamInfo.cbSize.QuadPart];
    hresStream = stream->Read(buffer,StreamInfo.cbSize.QuadPart, &cb);
    char* buf = new char[StreamInfo.cbSize.QuadPart];
    wcstombs((CHAR*)buf,(OLECHAR*)buffer,StreamInfo.cbSize.QuadPart);
/*------------------------------------------------------------------------------------------*/
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru