- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Программирование для карманных компьютеров - Владимир Волков
Шрифт:
Интервал:
Закладка:
}
return DefWindowProc (hWnd, wMsg, wParam, lParam);
}
// Блок 9
LRESULT DoDestroyMain (HWND hWnd, UINT wMsg, WPARAM wParam,
LPARAM lParam) {
PostQuitMessage (0);
return 0;
}
// Блок 10
LRESULT DoCharRecieveMain (HWND hWnd, UINT wMsg, WPARAM wParam,
LPARAM lParam) {
HDC hdc;
PAINTSTRUCT ps;
RECT rectCli;
GetClientRect (hWnd, &rectCli);
ps.rcPaint = rectCli;
InvalidateRect (hWnd, &rectCli, true);
hdc = BeginPaint (hWnd, &ps);
szStr = L" GiGoGa";
DrawText (hdc, (const unsigned short *)szStr, – 1, &rectCli,
DT_CENTER | DT_SINGLELINE);
EndPaint (hWnd, &ps);
return 0;
}
// Блок 11
LRESULT CharRec (HWND hWnd, UINT wMsg, WPARAM wParam,
LPARAM lParam) {
switch ((TCHAR)wParam){
case 49: { szStr = L" Нажата клавиша 1 на клавиатуре";}
break;
case 50: { szStr = L" А теперь на клавиатуре нажата клавиша 2";}
break;
}
MyPaint (hWnd, wMsg, wParam, lParam);
return 0;
}
// Блок 12
int MyPaint (HWND hWnd, UINT wMsg, WPARAM wParam,
LPARAM lParam) {
HDC hdc;
PAINTSTRUCT ps;
RECT rectCli;
GetClientRect (hWnd, &rectCli);
ps.rcPaint = rectCli;
InvalidateRect (hWnd, &rectCli, true);
hdc = BeginPaint (hWnd, &ps);
DrawText (hdc, (const unsigned short *)szStr, – 1, &rectCli,
DT_LEFT | DT_WORDBREAK);
EndPaint (hWnd, &ps);
return 0;
}7. Да, РєРѕРґР° получилось РјРЅРѕРіРѕ. Почти РІСЃРµ, что делает этот РєРѕРґ, РІ eVB РјРѕР¶РЅРѕ было сделать без написания РєРѕРґР° вообще. РќРѕ РІ eVC практически каждое действие РЅСѓР¶РЅРѕ прописывать РїСЂРё помощи серьезных блоков РєРѕРґР°. Если РІС‹ пишете консольное приложение, то РјРѕР¶РЅРѕ обойтись для начала несколькими строками РєРѕРґР°. РќРѕ если РЅСѓР¶РЅРѕ сделать приложение СЃ оконным интерфейсом Windows – засучите рукава, писать придется РјРЅРѕРіРѕ. РљРѕРґ, приведенный РІ листинге, всего лишь создает приложение Windwos CE СЃ РѕРґРЅРёРј РѕРєРЅРѕРј, которое реагирует РЅР° нажатие клавиш клавиатуры. Рта заготовка позволит одновременно РЅР° практике «прощупать» язык C++ Рё получить первые навыки работы СЃРѕ средой eVC. После нажатия РєРЅРѕРїРєРё Execute Programm программа будет скомпилирована Рё запущена. РџСЂРё нажатии цифровых клавиш 1 или 2 РЅР° виртуальной или РЅР° реальной клавиатуре программа выводит РЅР° экран соответствующие сообщения.
Краткие сведения о языке C++
Комментарии
Чаще всего освоение нового языка начинается с комментариев. Оставлять в коде пометки, по которым можно проследить ход ваших мыслей, не только является хорошим тоном по отношению к другим разработчиком, но и позволяет облегчить дальнейшую работу с кодом. Чаще всего, если фрагмент кода никак не удается коротко прокомментировать, это свидетельствует о том, что блок кода стоит переписать заново.
Однострочные комментарии создаются при помощи двух символов наклонной черты.
// Рто строка комментария
В следующем примере показано, как создаются многострочные комментарии.
/* Все эти строки являются комментариями
и должны быть обязательно
закрыты сочетанием звездочки и косой черты */В комментариях можно использовать весь набор символов. В тексте программы лучше пользоваться только символьным набором ASCII. В коде программы комментариями были помечены логические блоки кода, чтобы было легче на них ссылаться из текста этой главы.
Чтобы посмотреть, как выглядит набор символов ASCII, необходимо продолжить работу над примером.
Упражнение 4.1 (продолжение)
8. В файле MyExp.cpp в конце блока 3 дописать еще одно объявление переменной (массива):wchar_t mstr[256];
9. В конец файла дописать еще один блок, код которого приведен в листинге 4.3. Листинг 4.3
// Блок 13
void f1(){
mstr[0]=;
for (unsigned short i = 22; i<127; i++){
mstr[i-21]=i;
}
}10.В Рзменить РєРѕРґ блока 11, как показано РІ листинге 4.4. Листинг 4.4.
case 49: {
f1();
szStr = mstr;}
break;11. В файле MyExp.h дописать объявление функции в конец блока 4.
void f1();
12. Запустить программу. После нажатия клавиши 1 на экран будет выведена таблица ASCII, а точнее, та ее часть, которая может быть отображена на экране.
Лексемы
Существует шесть классов лексем. К этим базовым единицам языка относятся идентификаторы, ключевые слова, константы, строки, операторы и прочие разделители. Символы пробела, табуляции и новой строки, а также комментарии игнорируются, за исключением тех случаев, когда они служат разделителями лексем.
Типы и объявления, инициализация
Для того чтобы программа заработала на устройстве, текст программы должен быть превращен в исполняемый код. Трансляцией текста программы в исполняемый код занимается специальная программа – компилятор. Но компилятор работает по определенным правилам. Нельзя просто передать ему для компиляции некий блок кода, например, x=y+f(2);. В этом случае компилятор собщит, что он не знает, что такое х, у и f, поэтому придется предпринять некоторые действия, чтобы сообщить компилятору, что это за переменные и что для них имеют смысл действия присваивания, сложения и вызова функции. Каждое имя некоторого объекта (идентификатор) в C++ имеет связанный с этим именем тип. Тип показывает компилятору, какие операции можно применять к имени и как эти операции нужно интерпретировать.
Поэтому пример можно сделать более понятным для компилятора, написав небольшой дополнительный фрагмент кода:float x;
int y;
float f(int);Р’ этих строках содержатся сведения, необходимые для того, чтобы компилятор СЃРјРѕРі понять пример. Правда, скомпилировать программу РїРѕ-прежнему РЅРµ удастся, поскольку компилятор еще РЅРµ знает, как выполнять функцию f. Рта функция СѓР¶Рµ объявлена, РЅРѕ необходимо еще описать, как функция должна распорядится переданным ей параметром типа int Рё РІ результате каких операций должно быть возвращено значение типа float.
РљСЂРѕРјРµ обязательного объявления всех именованных объектов, РёС… еще необходимо инициализировать, то есть присвоить РёРј начальное значение. Некоторые объекты инициализируются РїСЂРё создании, некоторые – нет. РќРµ РЅСѓР¶РЅРѕ инициализировать переменные Рё объекты, объявленные внутри функций. Р’ результате этого неинициализированные объекты РјРѕРіСѓС‚ иметь неопределенное значение. Рто неопределенное значение РїСЂРё его случайном использовании может дать непредсказуемый результат.

