ALTE DOCUMENTE
|
|||||||
Программное обеспечение для создания Win-приложений
Венгерская нота 15115x2314p 094;ия Microsoft с тысячами программистов, работа 15115x2314p 102;щими над различными проектами, вы бы непременно пришли к необходимости введения стандарта написания кода, в противном случае хаос был бы неизбежен, Так и была рождена спецификация написания кода в Microsoft Charles Simonyi API
Обычно их называют венгерской нота 15115x2314p 094;ией. Почему? Вряд ли когда-нибудь мы точно узнаем об этом, да это и неважно - сейчас перед нами другая цель: научиться читать код Microsoft
Венгерская нота 15115x2314p 094;ия состоит из ряда соглашений по именованию переменных, функций, типов, констант, классов и параметров функций. В таблице 1.1 содержатся все префиксы, используемые при этом именовании.
Спецификация префиксов венгерской нота 15115x2314p 094;ии
c |
char |
|
by |
BYTE (unsigned char) |
|
n |
short int int |
|
i |
int |
|
x, |
short |
|
x, |
short |
|
b |
BOOL (int) |
|
|
w |
UINT (unsigned int) WORD (unsigned short int) |
l |
LONG (long) |
|
dw |
DWORD unsigned long |
|
fn | ||
s | ||
sz, str | ||
lp | ||
h |
Дескриптор (используется для обращения к объектам Windows |
|
msg |
При использовании венгерской нота 15115x2314p 094;ии переменные имеют префиксы, указанные в табл. 2.1. Кроме того, если имя переменной состоит из одного или нескольких слов, то каждое из них записывается с прописной буквы. Вот несколько примеров:
char *szFileName
int *lpiData // 32-битовый указатель на int
BOOL bSemaphore // Логическое значение
DWORD dwMaxCount // 32-битовое беззнаковое целое
g g
int g iXPos
int g Timer // Глобальный таймер
char g szString
// завершающим нулем
int PlotPixel(int ix, int iy, int ic);
void MemScan char szString
Использование подчеркиваний считается неверным. Например, следующая функция не соответствует венгерской нота 15115x2314p 094;ии:
int Get_Pixel(int ix, int iy);
const LONG NUM_SECTORS = 100; // C++
define MAX CELLS // Константа в стиле С
define POWERUNIT // Константа в стиле С
typedef unsigned char UCHAR // Пользовательский тип
Microsoft
В C++ ключевое слово const #define const
Соглашение об именовании классов может Вас несколько удивить, но я видел множество программистов, настолько привыкших к нему, что используют его в повседневной работе. Просто все классы C++ должны иметь имена с префиксом, состоящим из одной прописной буквы С.
class CVector
CVector(int x, int y, int z)
...
private:
int ix iy iz int
imagnitude // Размер вектора
}
UCHAR GetPixel int x int y
При использовании венгерской нота 15115x2314p 094;ии это объявление должно выглядеть следующим образом:
UCHAR GetPixel(int ix, int iy);
UCHAR GetPixel int int
Знакомство с венгерской нота 15115x2314p 094;ией еще не означает, что Вы в обязательном порядке должны ее использовать. Таким образом, код в этой книге будет использовать венгерскую нота 15115x2314p 094;ию при рассмотрении функций Win32 API
Программы, приведенные в этой книге, создавались в среде Microsoft Visual C ++ 6.0. Во время работы с книгой, разбирая приведенные примеры, или при создании собственных приложений Вы, вероятно, будете применять какой-либо другой компилятор, который сможет строить программы для Windows. Демонстрационные программы должны правильно транслироваться любым компилятором, совместимым с Visual C ++. Примеры, приведенные в книге, написаны на стандартном C/C++, так что они должны транслироваться любым компилятором C/C++.
Обычно создается проект типа Win32-Application. В состав «рабочего пространства» (Workspace Ex_02_01 Sourse Files
.cpp Example-02-01.cpp
стандартная библиотека вызовов Windows (на рис.1.4 - это библиотека Comctl32.lib)
стандартный заголовочный h-файл (на рис. 1.4 - это Windows.h
(Header Files если на него есть ссылка в тексте программы с помощью макроса
#include <Windows.h>
|