Kniga-Online.club
» » » » Владимир Волков - Программирование для карманных компьютеров

Владимир Волков - Программирование для карманных компьютеров

Читать бесплатно Владимир Волков - Программирование для карманных компьютеров. Жанр: Программирование издательство неизвестно, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

}

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.

Кроме обязательного объявления всех именованных объектов, их еще необходимо инициализировать, то есть присвоить им начальное значение. Некоторые объекты инициализируются при создании, некоторые – нет. Не нужно инициализировать переменные и объекты, объявленные внутри функций. В результате этого неинициализированные объекты могут иметь неопределенное значение. Это неопределенное значение при его случайном использовании может дать непредсказуемый результат.

Перейти на страницу:

Владимир Волков читать все книги автора по порядку

Владимир Волков - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


Программирование для карманных компьютеров отзывы

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


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

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*