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

Дайте ссылку или пример на интересующий меня вопрос. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ На массив и знание математики http://www.cyberforum.ru/cpp-beginners/thread240697.html
1. Определить, в какой координатной четверти нахочится точка заданная координатами (x,y). 2. Массив Y Вычислить среднее геометрическое положительных элементов массива Y. Y-целые числа. 3. Найти...
C++ сниффер сети Хочу написать сниффер сети на С++. Подскажите пожалуйста какие-нибудь книжки в этой области. http://www.cyberforum.ru/cpp-beginners/thread240692.html
контрольные суммы C++
всем здравствуйте. я долго искал подходящий топик, но не нашёл и решил создать, так как то, что находил мне не подходило теперь по делу. меня сейчас посадили за один стареньки процессор еще с RISC...
C++ программа со структурами!!!!
помогите пожалуста со структурами, и если не сложно при структурах опишите что делает данная строчка) заранее огромное спасибо! вот задание Создать программу, позволяющую вводить элементы массива...
C++ Ввод/вывод в С++: не могу разобраться. http://www.cyberforum.ru/cpp-beginners/thread240652.html
#include<iostream> using namespace std; #include<cstdlib> const int SIZE = 30; struct bop { char fullname; char title; char bopname; int preference; };
C++ Структуры Помогите пожалуйста с задачей: вот условие: Багаж пассажира характеризуется количеством вещей (целый тип) и общим весом вещей (вещественный тип). Дан список из сведений о багаже 10 пассажиров.... подробнее

Показать сообщение отдельно
QWAN
58 / 57 / 1
Регистрация: 02.09.2008
Сообщений: 181
10.02.2011, 16:09  [ТС]
Давайте начну сначала, я попробую расказать чего я хочу добиться от своей программы.
Допустим есть консольное приложение с большим буфером экрана (назовем ее плоскостью А). Я создаю дополнительную плоскость тоже большого размера, назовем ее Б. Чтобы скопировать с плоскости Б на плоскость А определенный прямоугольник символов с их атрибуми использую функции ReadConsoleOutput и WriteConsoleOutput. Эти функции имеют ограничение по размеру буффера 64К. Чтобы преодолеть это ограничение я придумал свою структуру FRAGMENT.

Массив из структур FRAGMENT тепер есть мой буффер, который может быть ограничен в принципе только размером свободной памяти компютера.
Я создаю указатель на мой буфер. Но размера я его еще незнаю. Функция
Код C++
1 FRAGMENT * ReadRectSurface(HANDLE hSurface, SMALL_RECT lpReadRegion, FRAGMENT *pBuffer)

должна была вычислить по заданному размеру прямоугольника:
1) количество элементов в массиве. ЕСЛИ оно меньше 64К то всего один элемент;
2) выделить для массива память;
3) если размер прямоугольника больше 64К, я пробую разбить прямоугольник построчно, если и этот размер больше 64К то выдать ошибку (можно былобы и далее дробить но пока этого достаточно). Иначе, выделить память размером в длину строки. На эту память указывает последний указатель в моей структуре.
C++
1
2
3
4
5
6
//стуктура предназначена для хранения части поверхности или всей поверхности если ее размер не превышает LIMIT
typedef struct _FRAGMENT {
    int counter;                // счетчик, показывает сколько фрагментов находится после текущего
    COORD dwBufferSize;         // размер фрагмента
    CHAR_INFO *lpBuffer;        // буфер данных, здесь хранятся символы
} FRAGMENT, *PFRAGMENT;
Осталось определить что передавть в функцию ReadRectSurface , что она должна возвращать, и где сделать очистку памяти.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru