ria pc game
fle game engine - движок для создания игр
fle game engine - движок для создания игр


Balls and holes PC game / Balls and Holes PC игра
Вакансии
Игродельня
Сегодня
22 февраля 2019 22:21
Вход Регистрация Забыли пароль ?

Урок 4 Создание Win32-приложений. Стандартные диалоги. Изучение сопутствующих конструкций языка. Консольные Win32-приложения. Указатели. Ссылочный тип. Массивы.
  Что нужно знать для создания DirectX-приложений на C++ в среде Microsoft Visual Studio 2008
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
megainformatic - Модуль отзывов/комментариев для вашего сайта

megainformatic - Модуль отзывов/комментариев для вашего сайта

megainformatic - Модуль короткие ссылки short link

megainformatic - Работа с сокетами fsocket из php

megainformatic - Как создать игру Создание игровых панелей и индикаторов

megainformatic - Приключения Кости Коробкина - Как я провел лето - интерактивный комикс

megainformatic - Приключения Кости Коробкина - Как я провел лето - интерактивный комикс

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс

megainformatic - Система управления сайтом на php - megainformatic cms admin files

megainformatic - обзор антивирусных средств защиты

megainformatic - как работает антивирус ?

megainformatic - Создание сайта для бизнеса

megainformatic - Новый взгляд на очевидные вещи

megainformatic - Разработка программ на c++

megainformatic - Немного о музыке

megainformatic - GET и POST запросы

megainformatic - для чего нужна карта сайта

megainformatic - Web Администрирование

megainformatic - Мысли о разном

megainformatic - Легко ли быть программистом

megainformatic - Глубины программирования на C++

megainformatic - Убираем лимит на размер импортируемого файла в PhpMyAdmin

megainformatic - Как создать torrent файл

megainformatic - Нужна ли валидация вашему сайту ?

megainformatic - Антивирус DrWeb

megainformatic - Калькулятор рассчёта стоимости зубопротезирования для стоматологической клиники

megainformatic - Что такое BitTorrent (БитТоррент)

megainformatic - Миссис Даутфайр 1993 фильм torrent

megainformatic - Как скачивать торрент-раздачу ?

megainformatic - Автотелега фильтр

megainformatic - Фильмы

megainformatic - Fahrengeit Фаренгейт игра 2006 для PC

megainformatic - Fez игра для PC 2013

megainformatic - Дневник памяти - фильм 2004

megainformatic - Scooter - The night - Video and Lyrics - Скутер - Ночь - Видео и лирика

megainformatic - Если всё же неудача

megainformatic - Смерть или искупление или избавление

megainformatic - По ту сторону

cj megainformatic - музыкальный альбом БЕСКОНЕЧНОЕ ДВИЖЕНИЕ ОЖИДАНИЕ И ДЕЙСТВИЕ

megainformatic - Костя Коробкин - Секретный проект - интерактивный комикс

megainformatic - Основы анимации во флеш на примере анимирования простейшей окружности

megainformatic - Парсер сайтов Введение

megainformatic - Я пишу музыку для себя и для продажи

megainformatic - Статьи на околомузыкальные темы - осень 2014 часть 1

megainformatic - рассказ - Чужие воспоминания - автор Синицин Андрей - 24.09.2014

megainformatic - Сайты живущие вне поисковых систем. Есть ли такие и как их найти ?

megainformatic - Game craft - проект разработки игровых и мультимедийных проектов

megainformatic - Game craft - моделируем scv

megainformatic - Game craft - моделируем scv - шаг 1 (часть 2)

megainformatic - Game craft - моделируем scv - шаг 2 (часть 3)

megainformatic - Game craft - Наложение текстуры на модель робота scv (часть 4)

megainformatic - Game craft - Прорисовка текстуры робота SCV шаг 5

megainformatic - Game craft - Экспорт модели из 3ds max в формат X

megainformatic - Game craft - отображение scv модели в формате x в d3d9-приложении

megainformatic - Game craft - управление игрой от Direct Input в d3d9 - приложении

megainformatic - Game craft - игровая камера в d3d9 - приложении

подробнее

роман Eternity Вечность - автор Синицин Андрей megainformatic - страница 4

 

к странице 1 к странице 2 к странице 3 страница 4

 

* * *

в коде есть -

BEGIN_MESSAGE_MAP(CAnimateCtrlPage, CPropertyPage)

//...

ON_BN_CLICKED(IDC_PLAY, OnPlay)






class CAnimateCtrlPage : public CPropertyPage
{

	afx_msg void OnPlay();
	
	
	
//...


void CAnimateCtrlPage::OnPlay()


Нужно записывать код вручную или надо генерировать ? И если генерировать, то как ?


На кнопке кликаем правой кнопкой и генерируем Add Event Handler


Получилось -

void Cwinsock_samp1Dlg::OnBnClickedButtonTest()

Как теперь получить IDC_STATIC и установить его текстовое свойство, чтобы
увидеть результат работы ?


Посмотрел пример тут -
\CmnCtrl1\animctrl.cpp

CWnd* pFrame = GetDlgItem(IDC_ANIMFRAME);
	pFrame->GetClientRect(&m_rectAnimateCtrl);
	
	
Значит по-аналогии


есть что-то более близкое -

вкладка CMonthCalCtrl


\CmnCtrl1\MonthCal.cpp
\CmnCtrl1\MonthCal.h

и там посмотреть как происходит работа с меткой Selection

Как выводится текущая дата в метку Selection ?


\CmnCtrl1\MonthCal.cpp


void CMonthCalPage::HandleSelect


	m_pszSelection.Format(_T("%02d/%02d/%2d"),ct.GetMonth(),ct.GetDay(),ct.GetYear());
	

//...

CMonthCalPage::CMonthCalPage

//...

m_pszSelection = _T("");


//...

void CMonthCalPage::DoDataExchange

//...

	DDX_Text(pDX, IDC_STRSELECTION, m_pszSelection);



Значит делаем по-аналогии

\winsock_samp1\winsock_samp1Dlg.cpp


void Cwinsock_samp1Dlg::DoDataExchange	
	
	DDX_Text(pDX, IDC_STATIC2, m_pszSelection);  //в данной строке возникает ошибка, почему ?


Надо было у добавленного элемента Static Text на форме, прописать в его свойствах этот же ID.


Однако по клику на кнопке Test в элементе Static Text ничего не отображается. Почему ?

внутри
void Cwinsock_samp1Dlg::OnBnClickedButtonTest


Добавил вызов
UpdateData(TRUE);


Но и это не решило вопрос. Что еще не учтено ?


Надо в справочном руководстве посмотреть как ведется работа со Static Text.
Может быть там есть примеры его использования.

void Cwinsock_samp1Dlg::OnBnClickedButtonTest()
{
	// TODO: Add your control notification handler code here
	//m_pszSelection.Format(_T("%02d/%02d/%2d"),ct.GetMonth(),ct.GetDay(),ct.GetYear());

	int i = 1;

	m_pszSelection.Format( _T("test %02d"), i );

	UpdateData(FALSE);  //надо было просто делать FALSE - и это решило проблему !
	//если TRUE - ничего не происходит
	
	
	
Работает !


Для проверки сделал, 


void Cwinsock_samp1Dlg::OnBnClickedButtonTest()
{
	// TODO: Add your control notification handler code here
	//m_pszSelection.Format(_T("%02d/%02d/%2d"),ct.GetMonth(),ct.GetDay(),ct.GetYear());

	//int i = 1;

	time_t osBinaryTime;
	time( &osBinaryTime ) ;

	CTime ct( osBinaryTime );
	//ct.
	m_pszSelection.Format( _T("%02d/%02d/%2d %02d:%02d:%02d"),ct.GetMonth(),
		ct.GetDay(),ct.GetYear(), ct.GetHour(),
		ct.GetMinute(), ct.GetSecond() );

	UpdateData(FALSE);
}


Т. е. чтобы по клику в текстовой метке на форме выводилась текущая дата и время.
	


	
Переходим к работе с Windows Sockets 2

	
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.WIN32COM.v10.en/winsock/winsock/initializing_winsock.htm



void Cwinsock_samp1Dlg::OnBnClickedButtonTest()
{
	// TODO: Add your control notification handler code here

	WSADATA wsaData;
	
	int iResult = WSAStartup( MAKEWORD(2,2), &wsaData );

	int iRes2 = 0;

	if ( iResult != NO_ERROR )
	{
		//printf("Error at WSAStartup()\n");

		iRes2 = -1;
	}

	//m_pszSelection.Format(_T("%02d/%02d/%2d"),ct.GetMonth(),ct.GetDay(),ct.GetYear());

	//int i = 1;

	time_t osBinaryTime;
	time( &osBinaryTime ) ;

	CTime ct( osBinaryTime );
	//0x%x
	m_pszSelection.Format( _T("%02d/%02d/%2d %02d:%02d:%02d iResult = 0x%x"),
		ct.GetMonth(), ct.GetDay(),ct.GetYear(), ct.GetHour(),
		ct.GetMinute(), ct.GetSecond(), iRes2 );

	UpdateData(FALSE);
}



Ошибок нет, всё ок.

Идём дальше.


Эта сфера деятельности уже не приносит такой прибыли, которую приносило 5-10 лет назад.
Тогда был настоящий бум.

Аналогичное можно говорить и про другие. Например про те же иноформы.
В создании ино также уже нет такого бума, т. е. рынок определился,
определились крупные его игроки. Заработать быстро и много уже трудно.

Именно поэтому приходится искать новые и стабильные способы заработка. Развивать не в ширину,
а в глубину - чем и является разработка брэйн-асков.

Брэйн-аск - модуль, загружаемый непосредственно в мозг и могущий выполнять какие-либо
полезные функции.

Сейчас таким мозгом являются современные персональные компьютеры и ноутбуки, но
когда-нибудь это будет встроено в мозг человека или никогда не будет. Лично я был бы против
чего-то такого. Каждому надо оставлять право выбора.

Однако свободный выбор всегда начинается с каких-то основ. Иногда человек даже просто не знает,
что у него был такой выбор. Он живёт не отдавая себе в этом отчет. Потому что иного он
просто никогда не видел и не представляет.


Но человеку нужно нечто большее. Всегда что-то особенное. Необычное. Музыка души.
Свободный полёт. Фантазия. Сон. Тонкая грань мечты и действительности.
Каждый видит мир по-своему. В одном мы все похожи - нам нужна мечта.

Без неё мир не изменится. Человек перестанет быть человеком. Где эта тонкая пленка реальности
и сна ?

										* * *

Антон спал безмятежно. Он летел куда-то, в пространстве, синеве небес. Было лето.
Солнце. Нежная прохлада и легкий ветерок.

И он погрузился в сон. Синева. Простор и облака. Во сне мы можем делать многое,
чего не можем наяву. Решать сложные проблемы. Находить ответы на трудные вопросы.
Так и он. Думал и мечтал. И все это протекало легко и безмятежно.

Никуда не надо было бежать. Ни от кого убегать. Просто иной мир. Параллельный
и всеобъемлющий. Может быть он более реален, чем вне сна.

И там царит вечное лето. 

Всё происходит очень быстро. Но там время течет в другом режиме. Здесь 5 минут,
там - возможно целая жизнь. 

Команда идёт. Она спешит к тебе на помощь. Тебе кажется, что изменить ничего
нельзя, но ты только помечтай. И тогда - всё придёт.

И Антон увидел нечто новое. Другой мир - такой, каким он будет. Всё будет сложнее,
и в то же время упростится на новом уровне.

Представьте однооконный, однопрограммный мир и мир многооконный и многопрограммный.
В котором Вы делаете сразу несколько дел одновременно. Причем они органично
взаимодействуют и дополняют друг друга.

Да - о таком еще можно только мечтать. ВОТ ОНО !
Начинаем.

Оказывается мечать тоже надо уметь. А как вы думали ? В любом деле важен опыт
и умение.

... Люди годами выстраивают свой бизнес, а ты хочешь за 5 минут заработать полмиллиона.
Что же такое ты должен сделать ?


ping ping ping

Раздалось вдруг.

Пришло время изучать ping.

Ping — утилита для проверки целостности и качества соединений в сетях на основе TCP/IP,
а также обиходное наименование самого запроса.

Первоначально словом «ping» (по созвучию) именовали направленный акустический
сигнал противолодочных гидролокаторов или «асдиков» (англ. ASDIC, аббревиатура от
Allied Submarine Detection Investigation Committee) времён Второй мировой войны.

Утилита отправляет запросы (ICMP Echo-Request) протокола ICMP указанному узлу сети
и фиксирует поступающие ответы (ICMP Echo-Reply). Время между отправкой запроса
и получением ответа (RTT, от англ. Round Trip Time) позволяет определять двусторонние
задержки (RTT) по маршруту и частоту потери пакетов, то есть косвенно определять
загруженность на каналах передачи данных и промежуточных устройствах.

В Microsoft SDKs\Windows\v7.0

есть пример исходного кода для написания этой утилиты -
c:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\netds\winsock\ping\Ping.cpp

Её код Мы и будем сегодня изучать.

Сначала важные вопросы:


где скачать Microsoft SDK Windows v7.0 ?

https://www.microsoft.com/en-us/download/details.aspx?id=3138

Там будет онлайн-инсталлятор который будет скачивать и устанавливать все нужные компоненты
в автоматическом режиме пока не закончит.

Объём скачиваемых данных составляет около 2.5 Gb


Исходный код будем открывать в MSVS 2005 и компиляцию выполнять там же.

Созданное приложение является консольным. Поэтому для его запуска
откройте окно Коммандной строки Windows - Пуск - Программы - Служебные Windows -
Коммандная строка

И сразу же смените путь введя команду

cd и скопировав и вставив путь 
C:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\netds\winsock\ping\Release

Тогда введя ping - и нажав Enter Вы получите распечатку доступных опций утилиты ping:

usage: ping [options] 
        host        Remote machine to ping
        options:
            -a 4|6       Address family (default: AF_UNSPEC)
            -i ttl       Time to live (default: 128)
            -l bytes     Amount of data to send (default: 32)
            -r           Record route (IPv4 only)
			
			
Если не вводить команду cd, а сразу ввести ping - то Вы запустите стандартную
утилиту ping из комплекта стандартных утилит Windows.

Так что будьте внимательны !


Если Вы запустите стандартную утилиту ping - то набор её параметров будет совсем иным -

cd c:\

c:\>ping

Использование: ping [-t] [-a] [-n <число>] [-l <размер>] [-f] [-i ]
         [-v ] [-r <число>] [-s <число>]
         [[-j <список_узлов>] | [-k <список_узлов>]] [-w <время_ожидания>]
         [-R] [-S <адрес_источника>] [-4] [-6] конечный_узел

Параметры:
    -t                    Задает проверку связи с указанным узлом до
                          прекращения.

...

и т. д.

Ну и конечно никаких изменений Вы не обнаружите если будете изменять код и компилировать,
потому что запускать будете совершенно другое приложение.

Так что запускайте его именно через последовательность команд

cd и скопировав и вставив путь 
C:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\netds\winsock\ping\Release

(вводится только один раз, далее вы уже остаетесь в данной папке и вводить команду
cd и путь повторно уже не нужно)

ping host megainformatic.ru

И получите в ответ что-то подобное -

Pinging 81.177.141.113 with 32 bytes of data

Reply from 81.177.141.113: bytes=32 time=62ms TTL=128
Reply from 81.177.141.113: bytes=32 time=47ms TTL=128
Reply from 81.177.141.113: bytes=32 time=47ms TTL=128
Reply from 81.177.141.113: bytes=32 time=47ms TTL=128


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

Здесь и далее мы остановимся на более практических вопросах:

- Какой именно код используется для работы с Windows Sockets 2;

и

- Как собственно работает ping - т. е. какой код требуется, чтобы
обеспечить её работу.


Естественно полный исходный код Мы здесь приводить не будем -
его Вы можете посмотреть сами скачав Microsoft Windows SDK 7

Здесь и далее мы будем останавливаться только на самых важных
моментах, на которые следует обратить внимание.

Все особенности применения можно почерпнуть из вышеупомянутых мануалов по
Microsoft Windows SDK 7, которые Вы найдёте там же -

например -
C:\Program Files\Microsoft SDKs\Windows\v7.0\Help\1033\WinSock.hxs


Чем его открыть ?

http://www.softpedia.com/get/System/OS-Enhancements/Help-Explorer-Viewer.shtml#download

и кликаем кнопку Softpedia Mirror (US)

Скачиваем и устанавливаем.


Программа оказалась довольно примитивной.
Она не поддерживает даже drag'n'drop.

Чтобы открыть вышеупомянутый 
C:\Program Files\Microsoft SDKs\Windows\v7.0\Help\1033\WinSock.hxs

Вам надо сначала открыть саму прогу -
C:\Program Files (x86)\HelpExplorer Software\Help Explorer 3\bin\helpexplorer.exe

Затем в ней выбрать пункт меню File > Open
и в окне диалога указать нужный файл.

Не совсем удобно. Но стандартно и привычно.

Главное мануал таки открылся.

Help Explorer 3.0 для открытия hxs файлов

Утилита как видим на скрине не первой свежести - датирована аж 2006 годом.

Но главное работает.

Так что двигаемся далее.


Итак,

Смотрим код в исходном файле -
c:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\netds\winsock\ping\Ping.cpp


Исполнение начинается с функции main. В этом легко убедиться запустив приложение
из MSVS в режиме отладки, т. е. Debug


int __cdecl main(int argc, char **argv)
{



Какова основная задача приложения ping ?


    // Load Winsock
    if ((rc = WSAStartup(MAKEWORD(2,2), &wsd)) != 0)
	{
		//...


Т. е. загрузить Win Sock

Если ошибок нет - двигаться дальше:

Выполнить ряд проверок

и создать Raw Socket -


    // Create the raw socket
    s = socket(gAddressFamily, SOCK_RAW, gProtocol);



Который будет использоваться для обмена информацией с запрашиваемым узлом
сети интернет.

Если адрес узла в виде IP или доменного имени (через предшествующий параметр host)

как например

ping host megainformatic.ru

Не был задан - то ничего не происходит.

Точнее утилита просто выдает в консоль ошибку 

Pinging :: with 32 bytes of data

WSAIoctl failed: 10022
sendto failed: 10049


В конце работы обязательно освобождаются все выделенные ресурсы
и в том числе вызывается


    WSACleanup();



И ничего не происходит.


Озадачимся вопросом: Как запустить ping в режиме отладки и при
этом передать параметр узла с которым мы хотим провести проверку ?


как передать параметр в консольное приложение в режиме отладки MSVS 2005


https://www.google.ru/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#
q=%D0%BA%D0%B0%D0%BA+%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%B0%D1%82%D1%8C+%D0
%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80+%D0%B2+%D0%BA%D0%BE%D0%BD%
D1%81%D0%BE%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5+%D0%BF%D1%80%D0%B8%D0%BB%D0%BE
%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5+%D0%B2+%D1%80%D0%B5%D0%B6%D0%B8%D0%BC%D0
%B5+%D0%BE%D1%82%D0%BB%D0%B0%D0%B4%D0%BA%D0%B8+MSVS+2005



http://forum.sources.ru/index.php?showtopic=275506

В MSVS 2005 студии по своему проекту правой кнопкой мышки и выбрать
Properites->Debugging->Command Arguments


как передать параметр в консольное приложение в режиме отладки MSVS 2005


Теперь можно в режиме отладки отследить по коду как используется 
заданный параметр коммандной строки: host megainformatic.ru

и собственно понять что и где происходит и как работает.

Для примера покажу как отображаются значения переменных в режиме
отладки - показано значение переменной rc после выполнения строк
кода -


    // Load Winsock
    if ((rc = WSAStartup(MAKEWORD(2,2), &wsd)) != 0)
	{
		//...



как отображаются значения переменных в режиме
отладки - для примера показано значение переменной rc после выполнения строк
кода if ((rc = WSAStartup(MAKEWORD(2,2), &wsd)) != 0)


Оно как видим равно 0, значит всё ОК. Win Sock 2 был успешно загружен,
ошибок не возникло и выполнение движется дальше по коду.


Нажимая клавишу [F10] по-шагово выполняем код строчку за строчкой и 
смотрим что меняется внутри переменных.


Например видим вызов функции ResolveAddress


    // Resolve the destination address
    dest = ResolveAddress(


Функция ResolveAddress объявлена в модуле
c:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\netds\winsock\ping\resolve.cpp

И выполняет реверсивный, т. е. обратный, поиск соответствия между адресом узла
и его именем.

Лучше понять как это происходит можно поставив контрольную точку внутри
функции ResolveAddress в модуле 
c:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\netds\winsock\ping\resolve.cpp

или в момент когда выполнение дойдёт до строки 

    // Resolve the destination address
    dest = ResolveAddress(


момент когда выполнение дойдёт до строки ResolveAddress

Воспользоваться клавишей [F11].

нажимаем клавишу [F11] чтобы попасть в реализацию функциюю ResolveAddress, описанную в модуле c:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\netds\winsock\ping\resolve.cpp


Если Вы уже ушли в исполнении дальше по коду (нажимая [F10]), то
знайте, что

вернуть исполнение на строку назад конечно нельзя.
Но вы можете просто дать приложению выполниться до конца нажав
стрелочку Continue на панели инструментов. А после того 
как приложение завершит работу, снова перезапустить его
в режиме отладки, используя эту же кнопку (после завершения работы приложения
она называется Start Debugging).


кнопка Start Debugging в среде MSVS 2005 для запуска приложения в режиме отладки


Двигаться внутри кода функции ResolveAddress можно также - нажимая [F10], а значения
переменных узнавая путём наведения на них указателя мыши.


Вы наверное уже заметили три вещи:

1) Повествование уже далеко ушло в сторону от романа Ethernity - Вечность.
2) На картинке выше, изображена контрольная точка останова - красный кружок.
3) Рассказ о Win Sock параллельно переплетается с особенностями
использования MSVS 2005 студии для отладки Ваших приложений и
изучения исходного кода примеров.

Отвечу по-порядку:

1) Повествование уже далеко ушло в сторону от романа Ethernity - Вечность.

Потому что в данный момент меня интересует эта тема, но в то же время я не
забываю про Антона, смотрю на мир его глазами, собираю новые материалы
чтобы превратить их в дальнейшее повествование. А здесь как видите
сочетается приятное с полезным. 

Не просто вольное чтение, но и какая-то полезная информация.

2) На картинке выше, изображена контрольная точка останова - красный кружок.

Кликая мышью в области левее номеров строк кода можно устанавливать красные
кружки - так называемые Breakpoints - контрольные точки остановки выполнения
программы. При выполнении в режиме отладки в пошаговом режиме программа
будет останавливать исполнение в данных точках.

Контрольные точки останова работают только на исполнимом коде.
Если вы установите точку остановки на строке комментария или объявлении
переменной, то остановки не произойдёт, потому что в данном месте
никакой код не выполняется.

Строки комментариев просто ингнорируются при компиляции, а
объявление переменных это особый механизм, который часто 
компилятор оптимизирует тем или иным способом, так что оно
тоже перестает быть исполнимым кодом в обычном понимании.


3) Рассказ о Win Sock параллельно переплетается с особенностями
использования MSVS 2005 студии для отладки Ваших приложений и
изучения исходного кода примеров.

Тут конечно на знатока или любителя. Я не знаю с какой целью
Вы читаете данный текст - праздное чтение или действительно
чему-то хотите научиться. Также я не в курсе о уровне ваших
знаний по теме изложения, поэтому веду рассказ естественно о
тех вещах, которые мне уже знакомы, и избегаю тех, которые
еще сам не изучил.

Поэтому даже если часть изложенного материала покажется Вам
"балластом" или "водой", то Вы легко можете его бегло прочитать
или вообще пропустить.

От этого, как говорится, никуда не деться.

Для тех же из Вас, что как и я, решили сочетать приятное
с полезным - условлюсь о следующем: повествование романа
будет способом отвлечься от сложного материала по программированию
и наоборот - праздное повествование будет насыщаться
полезными мыслями, данными и конечно же уроками.


далее мы узнаем о,

Практическом использовании полученных сведений из кода утилиты ping

Можно узнать IP-адрес по доменному имени ?
Как ведется работа с Windows Sockets 2 ?

И конечно история Антона и Ани будет продолжена.


к странице 1 к странице 2 к странице 3 страница 4 к странице 5

подробнее

fle game generator - fle генератор игр - fly snow 3d падающий снег версия 1.0.3.1 от 13.12.2016 - расширяемый генератор визуальных образов и игр

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

Может выполняться как обычное directx 9c приложение и в то же время Вы можете настраивать контент получая разные эффекты или произвольный контент.

Содержит несколько модулей.

Модуль fly snow 3d

Это настраиваемый генератор визуальных образов, футажей и подобных эффектов, в сочетании со слайд шоу из фонов, 3d объектами, управлением камерой.
Таким образом возможно создавать самые необычные и интересные видеоряды и видеоматериалы для музыкальных клипов, приложений, презентаций, выступлений и т. д.

При помощи данной программы Вы сможете генерировать видеоматериал, который можно
записать любой программой записи экрана и получить готовый видеоклип для загрузки в
youtube или куда-либо еще.

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

fly snow 3d падающий снег версия 1.0.2 от 7.12.2016 - расширяемый генератор визуальных образов

Представляет desktop приложение для directx 9c.



Модуль Scene Editor

fle game generator - fle генератор игр - модуль Scene Editor

Позволяет создавать 2d (реализовано) и 3d (в разработке) сцены и использовать в приложении fly snow 3d fle game generator - fle генератор игр.



Модуль Coords2D

fle game generator - fle генератор игр - модуль Coords2D

Это утилита для тестирования спрайтов и подбора их параметров, а также 2d экранных координат.



Модуль fge snow sample - fly snow 3d free

Это бесплатно распространяемая версия fly snow 3d. Без поддержки проигрывания музыки mp3, ogg, интерактивной смены фоновых картинок, без 3d частиц, эффектов движения звезд, без поддержки 3d камеры и некоторых других возможностей.

fle game generator - fle генератор игр - модуль fge snow sample - fly snow 3d free





Системные требования:

Windows XP/7/8/10/DirectX9c /P3 1000 МHz / 512 Mb RAM / 128 Mb Video /
около 30 Mb свободного места на жестком диске/DirectX-совместимая звуковая карта/
клавиатура, мышь

Приобрести fly snow 3d падающий снег версия от 7.12.2016

Приобрести fly snow 3d падающий снег
150 руб.

fly snow 3d падающий снег версия 1.0.2 от 7.12.2016 - расширяемый генератор визуальных образов

Основные особенности:

- расширяемый набор пресетов для существующих и новых видеообразов;
- настраиваемые сценарии генерации образов;

- нет поддержки проигрывания музыкальных треков mp3 или ogg, воспроизводимых в ходе показа;

- возможность неограниченных изменений генерируемого визуального материала -
любые текстуры, любые настройки параметров;

- нет поддержки 3d частиц, только 2d;

- свободная 3d камера, нет настройки для скорости движения камеры;



Приобрести fle game generator - fly snow 3d падающий снег версия 1.0.3.1 от 13.12.2016

fle game generator - fly snow 3d падающий снег версия 1.0.3.1 от 13.12.2016 - расширяемый генератор визуальных образов

Приобрести fly snow 3d падающий снег
200 руб.

Основные особенности:

- расширяемый набор пресетов для существующих и новых видеообразов;
- настраиваемые сценарии генерации образов;

- неограниченно пополняемый список музыкальных треков mp3 или ogg, воспроизводимых в ходе показа;

- возможность неограниченных изменений генерируемого визуального материала -
любые текстуры и 3d модели, любые настройки параметров;

- раздельный генератор 2d/3d частиц;

- свободная 3d камера;

- дополнительные настройки для камеры (скорость движения) и музыки (громкость, ручной/автоматический режим переключения треков, пауза и др.);

- возможности программы будут пополняться и расширяться;



Подробнее об утилитах Scene Editor, Coords2D, fge snow sample - fly snow 3d free, там же можно скачать их бесплатные версии.

выпуск 54 cubes and snow music clip версия 3

музыкальный клип композиция electro 3.
Снег, взмывающие вверх 3d разноцветные кубики,
платформа и смена фонов, свободная 3d камера

Клип сделан при помощи приложения fly snow 3d.









Примеры видеообразов, которые можно создать с помощью приложения fly snow 3d.

Падающий снег - белый, зеленый, синий.







Как настраивать генерацию снежинок или других видов частиц в приложении fly snow 3d







Падающий снег - белый, с демонстрацией его реализации



Эффектные видео, которые можно создать используя приложение fly snow 3d

Разлетающиеся в эффекте движущихся звёзд яркие разноцветные частицы, сопровождаемые яркой и позитивной музыкой.





Эффекты - футажи падающий снег, разноцветные снежинки, особенности реализации.







Еще примеры - Частицы - медленно и красиво опускающиеся пузырьки, смена плавно увеличивающихся фонов, сочетание 2d/3d, изменяемый вид из 3d камеры, музыкальное сопровождение.



Еще один вариант - версия 2.





подробнее

Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 3

Предлагаем вашему вниманию онлайн-комикс Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp).

Не атаковать ! Конечно не атаковать ! Неужели вы будете убивать беззащитную девушку ?

онлайн-комикс Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - страница 3

если кликать картинку она будет последовательно меняться в размерах от 620 до 2048 пиксель.

[страница 1] [страница 2] [страница 3] [страница 4] [страница 5]  [страница 6] [страница 7] 

подробнее

 

Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008

 
     
  Урок 3 Создание Win32-приложений. Создание меню и простых диалоговых окон.  
     
 

Данный урок является введением в программирование на C++ в MSVS 2008

Вам нужно иметь установленную среду Microsoft Visual Studio 2005 или 2008 (можно триал),

и DirectX SDK 9 версии, или лучше самой последней - DirectX SDK August 2008.

 
     
  [назад] [далее] [к содержанию]  
     
  Мы рассматриваем основы программирования на C++ в среде программирования MSVS 2008  
     
  В данном уроке мы рассмотрим как создается меню и простейшие окна диалогов.  
     
  Меню Win32-приложения создается как ресурс. Его создание похоже на создание меню в delphi 7.  
     
 

Для создания меню открываем окно ресурсов Resource View,

щелкаем правой кнопкой по пункту Resource.rc и выбираем Add Resource,

в окне выбора нового ресурса задаем требуемый тип (в нашем случае Menu) и нажимаем кнопку New

 
     
  будет создано окно с ресурсом меню, открытым для редактирования. По аналогии с созданием меню в delphi 7 нужно давать пунктам меню нужные идентификаторы в окне Properties и названия (свойство Caption)  
     
   
     
  Название идентификатора ресурса меню можно изменить щелкнув по ресурсу в окне ресурсов и вызвав окно Properties щелчком по вкладке Properties в правой части окна Visual Studio  
     
   
     
 

Для обработки команд меню в код необходимо внести дополнения

Внутри функции WndProc показан пример обработки пунктов меню About и Exit. По аналогии с этим нужно добавить обработку других пунктов меню.

 
     
  Работа с меню Win32-приложения описана в разделе MSVS 2008 > Help > Contents > Win32 and COM Development > User Interface > Windows User Experience > Windows Management > Windows User Interface > Resources > Menus  
     
 

Обработка нажатий на пункты меню Hints и Show FPS

в методе WndProc нажатия обрабатываются следующим образом -

case IDM_OPTIONS_HINT: {

bShowHelpText = !bShowHelpText;

if (bShowHelpText)
CheckMenuItem(GetMenu(hWnd), IDM_OPTIONS_HINT, MF_CHECKED);
else
CheckMenuItem(GetMenu(hWnd), IDM_OPTIONS_HINT, MF_UNCHECKED);

break;
}

case IDM_OPTIONS_SHOWFPS: {

m_bShowFPSOn = !m_bShowFPSOn;

if (m_bShowFPSOn)
CheckMenuItem(GetMenu(hWnd), IDM_OPTIONS_SHOWFPS, MF_CHECKED);
else
CheckMenuItem(GetMenu(hWnd), IDM_OPTIONS_SHOWFPS, MF_UNCHECKED);

break;
}

Дополнительно была введена функция InitD3DStuff, но пока ее назначение состоит лишь в -

void InitD3DStuff()
{
m_bShowFPSOn = TRUE;
bShowHelpText = TRUE;
}

 
     
 

Сама функция вызывается из InitInstance

В дальнейшем переменные m_bShowFPSOn и bShowHelpText перейдут в поля класса D3D-приложения

 
     
 

Для создания окна приложения с запрещенной кнопкой максимизации окна и неизменными размерами в коде функции InitInstance были внесены следующие изменения -

/*hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, 631, 380, NULL, NULL, hInstance, NULL); */

hWnd = CreateWindow(szWindowClass, szTitle,
WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX,
CW_USEDEFAULT, 0, 631, 380, NULL, NULL, hInstance, NULL);

 
     
 

Разработка окна диалога для управления уровнем сложности

Работа с элементами управления Windows в приложениях Win32 описана в разделе справки -

MSVS 2008 > Help > Contents > Win32 and COM Development > User Interface > Windows User Experience > Windows Shell > Windows Controls > Control Library

 
     
 

Создание диалоговых окон приложения Win32 похоже на создание форм в Delphi 7. Однако не для всех элементов управления дело обстоит просто. Существует целая группа элементов управления добавление которых не автоматизировано в коде.

Например, если использовать для настройки уровня сложности ползунок Slider Control (TRACKBAR_CLASS), то для инициализации диалога с его использованием требуется вызов функции InitCommonControlsEx. Создание самого элемента управления нужно выполнять в коде приложения.

Поэтому если Вы добавили в свое приложение какой-то диалог и обнаружили, что он не работает, значит всё ясно - он содержит элемент управления для которого необходим дополнительный код.

Работа с элементами управления окон описана в разделе MSVS 2008 > Help > Contents > Win32 and COM Development > User Interface > Windows User Experience > Windows Shell > Windows Controls > General Control Information

 
     
  Чтобы не озадачивать себя на первых порах излишними сложностями попробуйте заменить нужный элемент управления каким-либо другим, не требующим введения кода. Например вместо ползунка Slider для задания уровня сложности можно вполне обойтись обычными RadioButtons и они прекрасно справляются с этой задачей.  
     
  Для использования окна диалога, вызываемого в ответ на выбор какого-либо пункта меню достаточно посмотреть код диалогового окна About автоматически создаваемый при создании оконного Win32-приложения и отталкиваясь от него создать свой собственный для нужного пункта меню и диалога.  
     
  в следующем уроке - общие окна диалога, некоторые сопутствующие конструкции языка C++  
     
     
     
     
     
  [назад] [далее] [к содержанию]  
 

Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008

 
     
  Урок 2 Написание Win32-приложений. Обзор стартового кода Win32-приложения. Добавление ресурса текстовая строка  
     
 

Данный урок является введением в программирование на C++ в MSVS 2008

Вам нужно иметь установленную среду Microsoft Visual Studio 2005 или 2008 (можно триал),

и DirectX SDK 9 версии, или лучше самой последней - DirectX SDK August 2008.

 
     
  [назад] [далее] [к содержанию]  
     
  Мы рассматриваем основы программирования на C++ в среде программирования MSVS 2008  
     
  В предыдущем уроке мы рассмотрели базовые операторы языка и некоторые из его конструкций  
     
  в этом уроке мы переходим к более конкретным примерам начиная от оконных Win32-приложений и кончая Win32-DirectX приложениями.  
     
 

Несмотря на то, что тема описана кратко, она охватывает обширный раздел справочных руководств (Help) по MSVS 2008 и DirectX Aug 2008. Поэтому за более подробными сведениями обращайтесь к ним.

Далее же приводятся основные идеи и рабочие заметки, призванные помочь тем, кто решил научиться программировать DirectX-приложения (игры) на C++ в среде MSVS 2005 или 2008.

 
     
  Тема посвященная созданию оконных Win32-приложений описана в разделе MSVS 2008 Documentation > Development Tools and Languages > Visual Studio > Visual C++ > Creating and Managinng Visual C++ Projects > Visual C++ Projects > Creating a Win32 Windows Application  
     
 

Создаем пустое оконное Win32 - приложение - File > New > Project > Win32 > Win32 Project > на вкладке дополнительных настроек в мастере создания установить галочку Empty Project

Назначение основных файлов создаваемых автоматически при создании не пустого оконного Win32-приложения:

ReadMe.txt - содержит краткое описание созданных файлов;

HelloWorld_Win32.cpp (вместо HelloWorld_Win32 будет стоять название, которое Вы указали при создании проекта) - базовый, главный модуль проекта, в который Вы будете добавлять код и ссылки на другие модули;

HelloWorld_Win32.h - интерфейсная часть проекта, содержит ссылки на другие модули и прочую нужную информацию

Resource.h - идентификаторы ресурсов, генерируемые IDE (Integrated Development Environment, т.е. средой разработки - MSVS)

targetver.h - минимальные требования к версии платформы Windows - версия Windows и версия Internet Explorer

stdafx.h - ссылки на типовой набор заголовочных файлов

stdafx.cpp - ссылка на stdafx.h - stdafx.h и stdafx.cpp используются для создания прекомпилированных pch заголовочных файлов

 
     
 

Обзор стартового кода оконного Win32-приложения

Исполнение программы начинается с функции _tWinMain, ее имя стандартно и предопределено. Это стартовая точка входа в программу.

Код функции выполняет начальную подготовку приложения к работе -

int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);

// TODO: Place code here. в этом месте можно добавлять новый код
MSG msg;
HACCEL hAccelTable;

// Initialize global strings инициализация глобальных строк
LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
LoadString(hInstance, IDC_HELLOWORLD_WIN32, szWindowClass, MAX_LOADSTRING);
MyRegisterClass(hInstance);
//регистрация класса приложения

// Perform application initialization: выполнение инициализации
if (!InitInstance (hInstance, nCmdShow))
{
return FALSE;
}

//загрузка таблицы клавиатурных сокращений (горячих клавиш) для быстрого доступа к меню и т.п.

hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_HELLOWORLD_WIN32));

// Main message loop: основной цикл сообщений
while (GetMessage(&msg, NULL, 0, 0))
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}

return (int) msg.wParam;
}

 
     
  Принцип функционирования Win32-приложения заключается в следующем: приложение запускается и операционная система передает управление на функцию winMain. Функция выполняет необходимый код, связанный с начальной инициализацией, запускает цикл ожидания сообщений системы и возвращает ей управление. При возникновении в системе сообщений, адресованных данному приложению система направляет их в специальную оконную процедуру приложения, зарегистрированную на стадии начальной инициализации во время его старта.  
     
 

Во время разработки оконного Win32-приложения на базе шаблона Empty может возникнуть ряд вопросов:

Как добавить таблицу горячих клавиш (Acclerators), таблицу строк, меню в список ресурсов приложения?

Для этого в окне Solution Explorer в нижней правой части нужно выбрать вкладку Resource View и добавить требуемые ресурсы щелчком правой кнопки мыши на пункте Resources.rc и выбором пункта Add Resource. На первый порах можно опираться на то, что было задано в сгенерированном автоматически не пустом шаблоне Win32 - приложения.

Впоследствии разобравшись что к чему, Вы сможете добавлять требуемые ресурсы и настраивать их параметры по своему усмотрению.

 
     
 

Рассмотрим добавление строкового ресурса -

открываем окно ресурсов

 
     
   
     
  щелкаем правой кнопкой по пункту Resource.rc и выбираем Add Resource  
     
   
     
  в окне выбора нового ресурса задаем требуемый тип (в нашем случае String Table) и нажимаем кнопку New  
     
   
     
  при этом будет создан требуемый узел содержащий группу ресурсов данного типа, а внутри группы будет создан ресурс с именем по умолчанию. Можно задать требуемое имя, а в окне Properties задать требуемые свойства.  
     
  В нашем примере задаем имя IDS_APP_TITLE, а в свойстве Caption записываем любой текст, например Hello World Win32 App  
     
   
     
  Сохраняем изменения в проект  
     
  Аналогичным образом добавляются ресурсы всех остальных типов, с некоторыми особенностями, специфичными для каждого конкретного типа ресурсов.  
     
  в следующем уроке мы рассмотрим создание меню и диалоговых окон  
     
  [назад] [далее] [к содержанию]  
megainformatic live chat
Начать беседу
X
 

Оставленные комментарии



fle game engine - движок для создания игр
fle game engine - движок для создания игр


Something: Unexplained 2 captive of desires / Нечто: Необъяснимое 2 в плену желаний
Костя Коробкин Комикс Коллекционное издание - 6 комиксов, 81 страница, 220 mp3 треков
megainformatic Размещение баннерной рекламы у нас
Время загрузки: 0,0941