Форум города Днепр (Днепропетровска)
Форум города Днепр

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

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

Ответ
 
Опции темы Опции просмотра
Старый 22.03.2011, 13:46   #1
Strelok
Бессмертный
 
Аватар для Strelok
 
Регистрация: 22.01.2009
Адрес: Ф жДуНгЛяХ
Сообщений: 1,388
Сказал(а) спасибо: 134
Поблагодарили 614 раз(а) в 333 сообщениях
Настроение: Angelic
Вес репутации: 369
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, 23:50   #2
Leno4ka1990
Новичок
 
Аватар для Leno4ka1990
 
Регистрация: 11.09.2014
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 174
Leno4ka1990 на пути к лучшему
По умолчанию Ответ: Уроки программирования на C/C++ под Windows

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

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

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

Да, специальность программиста с каждым днем становится все более популярной, по скольку люди с данной профессией получают достойную заработную плату, их труд высоко ценится. Когда я хотела стать хорошим программистом, начинала с курсов программирования javarush для начинающих в Киеве https://javarush.ru/groups/posts/559...jshikh-v-kieve и хочу сказать вам, что на данный момент это лучшие курсы по программированию в нашей стране. Они выпустили много программистов, которые сейчас работают в ведущих ит-компаниях. Но главным залогом конечно же будет ваше стремление учится данному делу и большой труд. Всем желаю удачи!!!
megaoksi вне форума   Ответить с цитированием
Старый 27.07.2018, 21:51   #6
semena konopli
Новичок
 
Регистрация: 27.07.2018
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
semena konopli на пути к лучшему
По умолчанию Ответ: Уроки программирования на C/C++ под Windows

Классно всегда хаотел
semena konopli вне форума   Ответить с цитированием
Старый 27.07.2018, 21:52   #7
semena konopli
Новичок
 
Регистрация: 27.07.2018
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
semena konopli на пути к лучшему
По умолчанию Ответ: Уроки программирования на C/C++ под Windows

Правда
semena konopli вне форума   Ответить с цитированием
Старый 27.07.2018, 21:54   #8
semena konopli
Новичок
 
Регистрация: 27.07.2018
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
semena konopli на пути к лучшему
По умолчанию Ответ: Уроки программирования на C/C++ под Windows

Как долго нужно учить это все дело?
semena konopli вне форума   Ответить с цитированием
Старый 29.11.2018, 08:01   #9
vorog50
Местный
 
Аватар для vorog50
 
Регистрация: 19.09.2015
Сообщений: 107
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Вес репутации: 158
vorog50 на пути к лучшему
По умолчанию Ответ: Уроки программирования на C/C++ под Windows

Привет Спасибо за информацию Очень даже пригодится
vorog50 вне форума   Ответить с цитированием
Старый 22.05.2019, 10:04   #10
andrew_belozerov93
Новичок
 
Аватар для andrew_belozerov93
 
Регистрация: 22.05.2019
Адрес: Днепр
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 89
andrew_belozerov93 на пути к лучшему
По умолчанию Ответ: Уроки программирования на C/C++ под Windows

В чем принципиальное различие объявление функции через void и через int? Как оно влияет на конечную отработку программы?
__________________
Андерсен, не говори вслух, ты понижаешь IQ всей улицы!
andrew_belozerov93 вне форума   Ответить с цитированием
Старый 22.05.2019, 11:34   #11
thzfsdhdty
Избранный
 
Регистрация: 14.06.2018
Сообщений: 679
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 119
thzfsdhdty на пути к лучшему
По умолчанию Ответ: Уроки программирования на C/C++ под Windows

Cho thuГЄ mГ*n hГ¬nh led tбєЎi tphcm, mГ*n hГ¬nh led tб»• chб»©c sб»± kiện, mГ*n hГ¬nh led trong nhГ*, led ngoГ*i trб»ќi

Cho thuê sân khấu ca nhạc/ tổ chức lễ hội/ lễ khai giảng bế mạc/ sân khấu 3D phối cảnh chuyên nghiệp

https://violetwedding.net/cho-thue-m...-san-khau.html
thzfsdhdty вне форума   Ответить с цитированием
Старый 11.06.2019, 03:11   #12
gtaa1994
Избранный
 
Аватар для gtaa1994
 
Регистрация: 21.02.2019
Сообщений: 577
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Вес репутации: 104
gtaa1994 на пути к лучшему
По умолчанию Re: Уроки программирования на C/C++ под Windows

отличная программа, которую я рекомендую
http://airdrop.hhos.ru/fast-copy/
gtaa1994 вне форума   Ответить с цитированием
Ответ


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

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 11:25. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.7.0
Copyright ©2000 - 2024, vBulletin Solutions Inc. Перевод: zCarot