Форум Днепропетровска
Taobao форум СП в Украине
Вернуться   Форум города Днепр (Днепропетровска) > КОМПЬЮТЕРЫ и программы > Онлайн уроки > Уроки C++

Уроки C++ Уроки C++

Ответ Добавить объявление Выделить тему
 
Опции темы Опции просмотра
Старый 22.03.2011, 12:46   #1
Strelok
Бессмертный
 
Аватар для Strelok
 
Регистрация: 22.01.2009
Адрес: Ф жДуНгЛяХ
Сообщений: 1,768
cказал Спасибо: 155
сказали Спасибо 639 раз(а) в 348 сообщении
Настроение: Angelic
Вес репутации: 274 Strelok репутация неоспоримаStrelok репутация неоспоримаStrelok репутация неоспоримаStrelok репутация неоспоримаStrelok репутация неоспоримаStrelok репутация неоспоримаStrelok репутация неоспоримаStrelok репутация неоспоримаStrelok репутация неоспоримаStrelok репутация неоспоримаStrelok репутация неоспорима
По умолчанию Уроки программирования на C/C++ под Windows

Эти уроки, как я надеюсь, помогут научить Вас тому, что считается классическим программированием для Windows. Для начала возьмем старый добрый C (а не C++) и используем напрямую базовый интерфейс программирования приложений (API), а не какую бы то ни было другую оболочку, скрывающую под упрощенным, на первый взгляд, интерфейсом все тот же API. Постепенно, по мере возрастания сложности примеров, будут добавляться тексты программ на C++.
Конечно, для программирующих, скажем на Delphi, написание программы на простом C с использованием только API покажется сложным, однако в любом случае Вы сможете более отчетливо представлять, как действует Windows и ее приложения. Такой подход даст Вам знания, о которых Вы никогда не пожалеете.
В дальнейшем Вы сможете пользоваться средствами, облегчающими программирование, такими как Microsoft Foundatoin Classes (MFC) или Object Windows Library (OWL), однако не советую делать это прежде, чем Вы научитесь программировать на обычном C.




Что Вам потребуется?


Компилятор C/C++
(Автор пользуется Microsoft Visual C++ 6.00). Настоятельно рекомендую пользоваться компилятором фирмы Microsoft, т.к. при использовании продуктов других фирм могут быть проблемы (в частности несоответствие библиотек). Если Вы послушались совета и используете Microsoft Visual C++, то Вам желательно также добавить в Ваш AUTOEXEC.BAT инструкцию:



CALL VCVARS32.BAT



Естественно, нужно указать правильный путь к файлу VCVARS32.BAT. Этот файл, включенный в VC++, устанавливает переменные среды DOS для компиляции программ с помощью командной строки DOS. Кроме того, желательно вставить в AUTOEXEC.BAT и вторую инструкцию CALL:

CALL MSC.BAT

и поместить файл MSC.BAT в удобный для вас каталог. Файл MSC.BAT
SET CC=cl
SET CFLAGS=-c -DSTRICT -G3 -Ow -W3 -Zp -Tp
SET CFLAGSMT=-c -DSTRICT -G3 -MT -Ow -W3 -Zp -Tp
SET LINKER=link
SET GUIFLAGS=-SUBSYSTEM:windows
SET DLLFLAGS=-SUBSYSTEM:windows -DLL
SET GUILIBS=-DEFAULTLIB:user32.lib gdi32.lib winmm.lib
comdlg32.lib comctl32.lib
SET RC=rc
SET RCVARS=-r -DWIN32



Ну а теперь...


Урок №1

Hello, World!


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

#include <stdio.h>
void main(void)
{
printf("Hello, world!\n");
}

Если Вы думаете, что эта программа не будет работать под Windows, то глубоко ошибаетесь! Под Windows можно писать так называемые консольные приложения. Пример популярной консольной программы - Far manager. Для консольной программы в момент ее запуска операционной системой автоматически создается окно сеанса DOS, как и для обычной DOS-программы. На первый взгляд разницы между обычной DOS-программой и консольной программой нет. Однако это не так. Консольная программа может использовать всю мощь API (например работа с огромными блоками памяти, файлами, проецируемыми в память и т.д.), и даже создавать обычные Windows-окна.
Для запуска приведенной выше программы создайте в MS Visual C++ проект с типом Console Application, добавьте в проект файл (с любым именем и расширением .c или .cpp) с текстом программы и затем откомпилируйте проект.




Hello, Windows!
(1)

Однако наша задача - научиться писать полноценные программы под Windows (консольные приложения все же трудно назвать полноценными, хотя некоторые могут и не согласиться).
Вот простейшая программа из серии Hello, Windows:



//файл winmain.cpp
#include <windows.h> //этот файл всегда включается
//в Windows-программу

//Это главная функция программы.
int WINAPI WinMain(HINSTANCE hInst, //пусть Вас не смущает то,
HINSTANCE hPrevInst, //что здесь написано.
PSTR szCmdLine, //Мы разберем
int iCmdShow) //это позже.
{
//Вывести сообщение на экран.
MessageBox( //функция вывода сообщения
NULL, //окно сообщения не имеет родителя
"Hello, Windows!", //текст сообщения
"Наша первая программа", //заголовок окна
MB_ICONINFORMATION); //иконка, которая будет
//выведена левее сообщения
return 0;
}

Чтобы запустить эту программу, создайте проект с типом Win32 Application, добавьте в него файл с текстом программы и откомпилируйте.
Конечно, эта программа - не более, чем учебный пример. Ничего полезного она делать не может.





Hello, Windows!
(2)

Давайте теперь создадим скелет программы, который мы будем использовать в дальнейшем. Эта программа уже имеет нормальную структуру (т.е. примерно такую, какую имеют все Windows-программы).



//файл hellowin.cpp
#include <windows.h>

//описание оконной процедуры
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

//Это главная функция программы.
int WINAPI WinMain(HINSTANCE hInst,
HINSTANCE hPrevInst,
PSTR szCmdLine,
int iCmdShow)
{
HWND hwnd;
MSG msg;
WNDCLASSEX w;
static CHAR *szAppName={"HelloWin"};

w.cbSize=sizeof(w);
w.style=CS_HREDRAW|CS_VREDRAW;
w.lpfnWndProc=WndProc;
w.cbClsExtra=0;
w.cbWndExtra=0;
w.hInstance=hInst;
w.hIcon=LoadIcon(NULL,IDI_APPLICATION);
w.hCursor=LoadCursor(NULL,IDC_ARROW);
w.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH );
w.lpszMenuName=NULL;
w.lpszClassName=szAppName;
w.hIconSm=w.hIcon;
RegisterClassEx(&w);

hwnd=CreateWindow(
szAppName,
"Hello, Windows",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInst,
NULL);
ShowWindow(hwnd,iCmdShow);
UpdateWindow(hwnd);

while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

//Оконная процедура
LRESULT CALLBACK WndProc(HWND hwnd, UINT imsg,
WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT r;

switch(imsg)
{
case WM_CREATE:
return 0;
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
GetClientRect(hwnd,&r);
DrawText(hdc,"Hello, Windows!!!",-1,&r,
DT_SINGLELINE|DT_CENTER|DT_VCENTER);
EndPaint(hwnd,&ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}

return DefWindowProc(hwnd,imsg,wParam,lParam);
}


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




Strelok вне форума   Ответить с цитированием
 
Старый 04.03.2016, 22:50   #2
Leno4ka1990
Новичок
 
Аватар для Leno4ka1990
 
Регистрация: 11.09.2014
Сообщений: 10
cказал Спасибо: 0
сказали Спасибо 0 раз(а) в 0 сообщении
Вес репутации: 71 Leno4ka1990 на пути к лучшему
По умолчанию Ответ: Уроки программирования на C/C++ под Windows

Неплохой урок жаль только что нет продолжения
Leno4ka1990 вне форума   Ответить с цитированием
Старый 08.07.2016, 13:45   #3
Andriana123
Местный
 
Аватар для Andriana123
 
Регистрация: 09.02.2015
Сообщений: 132
cказал Спасибо: 0
сказали Спасибо 1 раз(а) в 1 сообщении
Вес репутации: 65 Andriana123 на пути к лучшему
По умолчанию Ответ: Уроки программирования на C/C++ под Windows

та про продовження це точно хороші уроки но дужу дуже короткі
Andriana123 вне форума   Ответить с цитированием
Старый 29.07.2017, 19:14   #4
krutoitip
Новичок
 
Регистрация: 20.06.2017
Сообщений: 5
cказал Спасибо: 0
сказали Спасибо 0 раз(а) в 0 сообщении
Вес репутации: 20 krutoitip на пути к лучшему
По умолчанию Ответ: Уроки программирования на C/C++ под Windows

Цитата:
Сообщение от Leno4ka1990 Посмотреть сообщение
Неплохой урок жаль только что нет продолжения
Вы всегда можете обратиться в агентство системных интернет-решений ВЕЗОМ. Эта веб студия не только предлагает различные курсы, но также сможет создать и продвинуть сайт, разработать мобильное приложение http://wezom.com.ua/razrabotka-mobilnyh-prilozhenij, окажут поддержку вашему бизнесу. Кто заинтересовался, обращайтесь к ним.
krutoitip вне форума   Ответить с цитированием
Старый 05.05.2018, 19:45   #5
megaoksi
Местный
 
Регистрация: 20.03.2017
Сообщений: 180
cказал Спасибо: 0
сказали Спасибо 1 раз(а) в 1 сообщении
Вес репутации: 28 megaoksi на пути к лучшему
По умолчанию Ответ: Уроки программирования на C/C++ под Windows

Да, специальность программиста с каждым днем становится все более популярной, по скольку люди с данной профессией получают достойную заработную плату, их труд высоко ценится. Когда я хотела стать хорошим программистом, начинала с курсов программирования javarush для начинающих в Киеве https://javarush.ru/groups/posts/559...jshikh-v-kieve и хочу сказать вам, что на данный момент это лучшие курсы по программированию в нашей стране. Они выпустили много программистов, которые сейчас работают в ведущих ит-компаниях. Но главным залогом конечно же будет ваше стремление учится данному делу и большой труд. Всем желаю удачи!!!
megaoksi вне форума   Ответить с цитированием
Ответ Добавить объявление Выделить тему

« Пишем простой калькулятор | Следующей темы нет »

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:09.

 
Работает на vBulletin®.
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Перевод: zCarot

 
Форумы

Город Днепропетровск
Политика
Новости Днепропетровска
Дом и семья
Кулинария
Наши дети
Доска объявлений
Досуг и развлечения
Музыка
Коллекционирование
Компьютеры и программы
Мобильная связь и интернет
Работа в Днепропетровске
Профессиональные форумы
Он и она...
Беседка
Товары

Каталог цен и товаров
Совместные покупки


Благотворительность

Помощь детям
Услуги

Переводчик текста


Информация

Телепрограмма
Карта Днепропетровска
Доска объявлений
Погода
Сервисы

Фотошоп онлайн
Города Украины
Реклама на сайте
Реклама на форуме
Наверх ↑

форум Днепропетровска
© 2008—2016



Администрация форума Днепропетровска не несет ответственности за информацию, которую размещают пользователи ресурса. Полное либо частичное копирование материалов без обратной ссылки - запрещено.