Все вопросы связанные с программированием. Языки программирования. Средства разработки.
Аватара пользователя
Borr
Не в сети
Частый гость
Частый гость
Сообщения: 338
Зарегистрирован: Ср сен 15, 2004 17:14
Откуда: Шахты
Контактная информация:

Сообщение Borr »

Вот муха пролетела и ООП.
Одно не понятно вызывает интерес сообщения, которые мы с последним усилием воли здесь вояем...
И писали они и читали их троя c0der Iron Man
Borr...
Стой там, иди сюда

Аватара пользователя
TOSHIK
Не в сети
Администратор
Администратор
Сообщения: 6596
Зарегистрирован: Пт авг 08, 2003 13:49
Откуда: Ростов-на-Дону
Контактная информация:

Сообщение TOSHIK »

Я читаю все. Ликбез понравился. Интересно.
Активисты все еще ищутся здесь!

Iron Man
Не в сети
Частый гость
Частый гость
Сообщения: 176
Зарегистрирован: Пн фев 07, 2005 14:03

Сообщение Iron Man »

c0der
Спасибо. Получил более подробную ин-ю о шаблонах. STL действительно вещь удобная! но я так понял она состоит не только из шаблонов, а включает в себя и готовые алгоритмы.
Kill your Self >> save the Planet

ken
Не в сети
Случайно забежавший
Случайно забежавший
Сообщения: 4
Зарегистрирован: Вт июн 21, 2005 1:14
Откуда: Украина, г.Харьков
Контактная информация:

Сообщение ken »

Привет ребята!
Я забрел на форум через поисковик и мне понравилась инфа.
Самоучно осваиваю С++, пока профан.
cOder, ты классно расписал программу в самом начале темы.
(хотя можно было использовать use namespace std; и просто cout, но это альтернативы)
Я скопировал данные, чтобы потом детально изучить.

Ответьте пожалуйста на такой вопрос:
Windows XP не разворачивает консоль во весь экран.
Как развернуть?

Аватара пользователя
c0der
Не в сети
Новичок
Новичок
Сообщения: 45
Зарегистрирован: Ср апр 14, 2004 15:06

Сообщение c0der »

Привет ken.
Спасибо за лестный отзыв.
>>Ответьте пожалуйста на такой вопрос:
>>Windows XP не разворачивает консоль во весь экран.
>>Как развернуть?
Если ты имел в виду перевод из полноэкранного режима и обратно (как по комбинации alt-enter) то широко известен один хак - использование недокументированных ф-ций SetConsoleDisplayMode и GetConsoleDisplayMode. Работает в win2k/winxp. Вот тебе пример враппера этих функций, и пример его использования:

Код: Выделить всё

#include <windows.h>
#include <iostream>
#include <conio.h>

class ConsoleManagement
{
public:
	ConsoleManagement()
	{
		HMODULE hKernel32 = GetModuleHandle("kernel32");
		SetConsoleDisplayMode = (PROCSETCONSOLEDISPLAYMODE)GetProcAddress(hKernel32,"SetConsoleDisplayMode");
		GetConsoleDisplayMode = (PROCGETCONSOLEDISPLAYMODE)GetProcAddress(hKernel32,"GetConsoleDisplayMode");
		this->handle = GetStdHandle(STD_OUTPUT_HANDLE);
	}
	virtual ~ConsoleManagement(){};
	void setFullscreen()
	{
		this->SetConsoleDisplayMode(this->handle, 1, &this->oldMode);
	}
	void setWindowed()
	{
		this->SetConsoleDisplayMode(this->handle, this->oldMode, &this->oldMode);
	}
private:
	typedef BOOL (WINAPI *PROCSETCONSOLEDISPLAYMODE)(HANDLE,DWORD,LPDWORD);
	typedef BOOL (WINAPI *PROCGETCONSOLEDISPLAYMODE)(LPDWORD);

	PROCSETCONSOLEDISPLAYMODE SetConsoleDisplayMode;
	PROCGETCONSOLEDISPLAYMODE GetConsoleDisplayMode;

	DWORD oldMode;
	HANDLE handle;
};

void main(int argc, char *argv[])
{
	ConsoleManagement con;
	con.setFullscreen();
	std::cout << "Hello, fullscreen!" << std::endl;
	getch();
	con.setWindowed();
	std::cout << "Bye bye fullscreen!" << std::endl;
	getch();
}
rep movsd

Аватара пользователя
Anmed
Не в сети
СуперМодератор
СуперМодератор
Сообщения: 3246
Зарегистрирован: Ср фев 11, 2004 19:39
Откуда: снова Шахты
Контактная информация:

Сообщение Anmed »

Эээ... Нда... а никто случаем не даёт частные уроки ассемблера для слабоумных? (ярко выраженная олигофрения) Очень надо для работы
мне ассемблер знать, а я дятел :( Не программы писать на нём, а дизассемблировав файлик разобраться как работает. Чтобы убрать один- единственный запрос :roll:
Культурный уровень общества наиболее точно определяется состоянием общественных туалетов, мусоросборников и отношением к старикам, инвалидам и детям.

ken
Не в сети
Случайно забежавший
Случайно забежавший
Сообщения: 4
Зарегистрирован: Вт июн 21, 2005 1:14
Откуда: Украина, г.Харьков
Контактная информация:

Сообщение ken »

Спасибо! Работает! :cheesy:

Ликбез - это точно для меня. Помимо программной функции попробовал Alt + Enter и сделал для себя дополнительное открытие.

У меня действительно есть масса вопросов, и было бы неплохо немного разобраться.

Можешь сказать, как однозначно и безглючно русифицировать консоль?

P.S. У меня есть одна книжная функция, но она глючит со второй половиной алфавита строчных букв.

Аватара пользователя
Hank
Не в сети
Почётный форумщик
Почётный форумщик
Сообщения: 4299
Зарегистрирован: Чт май 05, 2005 19:35
Откуда: RnD

Сообщение Hank »

Anmed,
Не программы писать на нём, а дизассемблировав файлик разобраться как работает. Чтобы убрать один- единственный запрос
Давай файлик - уберём запрос 8) :cheesy:
Люблю повеселиться, особенно пожрать,
Люблю и поработать, особенно поспать )

Аватара пользователя
Hank
Не в сети
Почётный форумщик
Почётный форумщик
Сообщения: 4299
Зарегистрирован: Чт май 05, 2005 19:35
Откуда: RnD

Сообщение Hank »

ken,
Один вопрос - а зачем консоль то ни в чём не повинную трогать?, я так понял ты только начал C++ изучать... консоль для новичков удобна, если использовать стандартные cout, а если пытаться на ней прорисовывать графику или использовать, применительно к ней же, малодокументированные ф-ии, то имхо работа с окнами куда проще :wink:
Люблю повеселиться, особенно пожрать,
Люблю и поработать, особенно поспать )

ken
Не в сети
Случайно забежавший
Случайно забежавший
Сообщения: 4
Зарегистрирован: Вт июн 21, 2005 1:14
Откуда: Украина, г.Харьков
Контактная информация:

Сообщение ken »

Eraser писал(а):ken,
Один вопрос - а зачем консоль то ни в чём не повинную трогать?, я так понял ты только начал C++ изучать... консоль для новичков удобна, если использовать стандартные cout, а если пытаться на ней прорисовывать графику или использовать, применительно к ней же, малодокументированные ф-ии, то имхо работа с окнами куда проще :wink:
Ты прав, возможностей с окнами больше.
Но ты прав и в том, что я новичок, так что хочу разобраться в основных возможностях С++, так что мне даже с консолью делов хватает.

А ты часом сможешь однозначно поставить точку в русификации консольной программы?

Аватара пользователя
Hank
Не в сети
Почётный форумщик
Почётный форумщик
Сообщения: 4299
Зарегистрирован: Чт май 05, 2005 19:35
Откуда: RnD

Сообщение Hank »

ken,
А ты часом сможешь однозначно поставить точку в русификации консольной программы?
Не знаю... а самое главное и желания нет разбираться, тут скоро с avalon'ом разбираться прийдётся... не до консолий.
Имхо консоль весчь иногда очень удобная, но это иногда всё реже и реже... Удобство заключается именно в простоте организации ввода/вывода, если необходима интерактивность - консоль это плохое решение.
Люблю повеселиться, особенно пожрать,
Люблю и поработать, особенно поспать )

ken
Не в сети
Случайно забежавший
Случайно забежавший
Сообщения: 4
Зарегистрирован: Вт июн 21, 2005 1:14
Откуда: Украина, г.Харьков
Контактная информация:

Сообщение ken »

Не знаю... а самое главное и желания нет разбираться, тут скоро с avalon'ом разбираться прийдётся... не до консолий.
Имхо консоль весчь иногда очень удобная, но это иногда всё реже и реже... Удобство заключается именно в простоте организации ввода/вывода, если необходима интерактивность - консоль это плохое решение.[/quote]

Понимаю.
Просто я делал небольшие программки и столкнулся с такой проблемой.
Пробовал решить сам. Хотя не получилось, мозги поднапряг, экспериментировал. В книжке одной умной есть работающая функция, только она впоследствии ... сбой дает, а в ASCII (я небольшую прогу сделал для наглядного примера) алфавит русских строчных букв не един, а на две части разбросан. Это создает проблему именно со второй половиной строчных букв (той функцией заглавными выводить можно).
Я начал поиски в интернете, но на данный момент найдены аналогичные проблемы коллег.

Может просто функция несовершенна. После первой очистки экрана начинаются проблемы.
Если интересно, могу привести эту полурабочую функцию.

Аватара пользователя
Anmed
Не в сети
СуперМодератор
СуперМодератор
Сообщения: 3246
Зарегистрирован: Ср фев 11, 2004 19:39
Откуда: снова Шахты
Контактная информация:

Сообщение Anmed »

В архиве два бинарника. Это дампы от блока управления автомобиля
KIA. Один дамп с иммобилайзером, второй без. Я поставил тот, что без,
но он от машины с модулем зажигания, а у меня трамблёрная версия.
Пришлось переделывать блок управления. Тайминги тоже отличаются.
В общем всё работает но кривовато. Клиентр доволен, а я нет. Хотелось бы в оригинальной прошивке убрать иммо. Можно ли это сбацать на основе рабочей? Думаю да, для этого собственно и нужен мне асм.
Последний раз редактировалось Anmed Пн фев 13, 2006 12:19, всего редактировалось 1 раз.
Культурный уровень общества наиболее точно определяется состоянием общественных туалетов, мусоросборников и отношением к старикам, инвалидам и детям.

Аватара пользователя
Anmed
Не в сети
СуперМодератор
СуперМодератор
Сообщения: 3246
Зарегистрирован: Ср фев 11, 2004 19:39
Откуда: снова Шахты
Контактная информация:

Сообщение Anmed »

Чего - то затихло всё. Скачано 1 раз. Надеюсь это был Eraser,
крупнейший южнороссийский специалист в области убирания запросов.
Культурный уровень общества наиболее точно определяется состоянием общественных туалетов, мусоросборников и отношением к старикам, инвалидам и детям.

Аватара пользователя
Hank
Не в сети
Почётный форумщик
Почётный форумщик
Сообщения: 4299
Зарегистрирован: Чт май 05, 2005 19:35
Откуда: RnD

Сообщение Hank »

Anmed,
области убирания запросов
Гы-Гы :mrgreen:
скачал конечно, но ни... ни фига не понял ) , т.к. хз чем это дизасcемблировать )
Тут нужен спец. софт имхо. :cry:
Люблю повеселиться, особенно пожрать,
Люблю и поработать, особенно поспать )

Ответить