Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
#MRoose
 Аватар для MIRAMIX
8 / 9 / 3
Регистрация: 22.02.2013
Сообщений: 416

Зная c++ в чем можно писать код кроме проекта Win32 в студии?

30.07.2014, 16:27. Показов 2740. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прошу правильно понять:например в фильмах различные хакеры взламывают что-то и т.п

и вообще если что-то супер написано на с++ то это же не означает что на винапи в "Проект Win32" в Visual Studio.или в этом проекте можно что хочешь писать кроме винапи?

я думаю что в вин32 проекте можно писать только типа этого (винапи)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#include <windows.h>
#include <stdlib.h>
#include <string.h>
#include <tchar.h>
 
// Global variables
 
// The main window class name.
static TCHAR szWindowClass[] = _T("win32app");
 
// The string that appears in the application's title bar.
static TCHAR szTitle[] = _T("Win32 Guided Tour Application");
 
HINSTANCE hInst;
 
// Forward declarations of functions included in this code module:
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
 
int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine,
                   int nCmdShow)
{
    WNDCLASSEX wcex;
 
    wcex.cbSize = sizeof(WNDCLASSEX);
    wcex.style          = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc    = WndProc;
    wcex.cbClsExtra     = 0;
    wcex.cbWndExtra     = 0;
    wcex.hInstance      = hInstance;
    wcex.hIcon          = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);
    wcex.lpszMenuName   = NULL;
    wcex.lpszClassName  = szWindowClass;
    wcex.hIconSm        = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
 
    if (!RegisterClassEx(&wcex))
    {
        MessageBox(NULL,
            _T("Call to RegisterClassEx failed!"),
            _T("Win32 Guided Tour"),
            NULL);
 
        return 1;
    }
 
    hInst = hInstance; // Store instance handle in our global variable
 
    // The parameters to CreateWindow explained:
    // szWindowClass: the name of the application
    // szTitle: the text that appears in the title bar
    // WS_OVERLAPPEDWINDOW: the type of window to create
    // CW_USEDEFAULT, CW_USEDEFAULT: initial position (x, y)
    // 500, 100: initial size (width, length)
    // NULL: the parent of this window
    // NULL: this application does not have a menu bar
    // hInstance: the first parameter from WinMain
    // NULL: not used in this application
    HWND hWnd = CreateWindow(
        szWindowClass,
        szTitle,
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, CW_USEDEFAULT,
        500, 100,
        NULL,
        NULL,
        hInstance,
        NULL
    );
 
    if (!hWnd)
    {
        MessageBox(NULL,
            _T("Call to CreateWindow failed!"),
            _T("Win32 Guided Tour"),
            NULL);
 
        return 1;
    }
 
    // The parameters to ShowWindow explained:
    // hWnd: the value returned from CreateWindow
    // nCmdShow: the fourth parameter from WinMain
    ShowWindow(hWnd,
        nCmdShow);
    UpdateWindow(hWnd);
 
    // Main message loop:
    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
 
    return (int) msg.wParam;
}
 
//
//  FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM)
//
//  PURPOSE:  Processes messages for the main window.
//
//  WM_PAINT    - Paint the main window
//  WM_DESTROY  - post a quit message and return
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    PAINTSTRUCT ps;
    HDC hdc;
    TCHAR greeting[] = _T("Hello, World!");
 
    switch (message)
    {
    case WM_PAINT:
        hdc = BeginPaint(hWnd, &ps);
 
        // Here your application is laid out.
        // For this introduction, we just print out "Hello, World!"
        // in the top left corner.
        TextOut(hdc,
            5, 5,
            greeting, _tcslen(greeting));
        // End application-specific layout section.
 
        EndPaint(hWnd, &ps);
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
        break;
    }
 
    return 0;
}
если я не прав то пж поправьте меня

вообще как создать приложение то есть ехе хоть без интерфейса но без винапи?консоль не рассматривается

Спасибо за понимание))
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.07.2014, 16:27
Ответы с готовыми решениями:

[Visual c++] Можно ли как то создать форму в студии, кроме clr проекта?
Добрый день форумчане. Вопрос следующий, я хочу создать приложение на c++ в VisualStudio 2017, читал форум, нашел статьи где...

Можно ли в студии узнать какие файлы из лежащих в папках проекта не участвуют в компиляции?
Можно ли в студии узнать какие файлы из лежащих в папках проекта не участвуют в компиляции? Пишу свои классы-&quot;упростители&quot;...

В чем и на чем можно писать простые скрипты для Windows 7
Добрый день. Хочется писать простые скрипты, чисто для себя, например, такого содержания - чтобы удалялись старые файлы в папке...

20
Native x86
Эксперт Hardware
 Аватар для quwy
6853 / 3787 / 1024
Регистрация: 13.02.2013
Сообщений: 11,861
30.07.2014, 16:35
Цитата Сообщение от MIRAMIX Посмотреть сообщение
например в фильмах различные хакеры взламывают что-то и т.п


Цитата Сообщение от MIRAMIX Посмотреть сообщение
и вообще если что-то супер написано на с++ то это же не означает что на винапи в "Проект Win32" в Visual Studio
Может быть Builder. Может быть проект под Linux, там тоже на крестах пишут почти все. Да много чего может быть на C++ написано без студии и WinAPI.

Цитата Сообщение от MIRAMIX Посмотреть сообщение
вообще как создать приложение то есть ехе хоть без интерфейса но без винапи?консоль не рассматривается
Это как?
0
#MRoose
 Аватар для MIRAMIX
8 / 9 / 3
Регистрация: 22.02.2013
Сообщений: 416
30.07.2014, 17:16  [ТС]
quwy, то есть если на плюсах то винапи обязательна?

Добавлено через 1 минуту
Цитата Сообщение от quwy Посмотреть сообщение
Может быть Builder. Может быть проект под Linux, там тоже на крестах пишут почти все. Да много чего может быть на C++ написано без студии и WinAPI.
какая разница какая ide?главное как без этого винапи писать что нибудь
0
Native x86
Эксперт Hardware
 Аватар для quwy
6853 / 3787 / 1024
Регистрация: 13.02.2013
Сообщений: 11,861
30.07.2014, 17:31
Лучший ответ Сообщение было отмечено Убежденный как решение

Решение

Цитата Сообщение от MIRAMIX Посмотреть сообщение
о есть если на плюсах то винапи обязательна?
Где я это сказал? Кресты -- это всего лишь язык программирования. На нем даже для микроконтроллеров программы пишут, какой там, к черту, WinAPI? WinAPI -- это интерфейс для взаимодействия операционной системы Windows с программами, написанными под эту систему, если нет Windows, то нет и WinAPI.

Цитата Сообщение от MIRAMIX Посмотреть сообщение
какая разница какая ide?главное как без этого винапи писать что нибудь
Любая программа, работающая под Windows, будет использовать WinAPI, хотите вы этого или нет, по другому просто не бывает. Программист, пишущий программу, может не использовать WinAPI напрямую, пользуясь вместо этого высокоуровневыми библиотеками типа Qt. В этом случае в его исходных текстах обращения к WinAPI может не быть вовсе, но код этих самых высокоуровневых библиотек все равно так или иначе с системой взаимодействует, а значит производит вызовы WinAPI-функций.
1
#MRoose
 Аватар для MIRAMIX
8 / 9 / 3
Регистрация: 22.02.2013
Сообщений: 416
30.07.2014, 17:49  [ТС]
quwy, итак я рассматриваю только винду.получается если игры написаны на плюсах и для винды они используют винапи???и их плюсовая часть написана в Проекте вин32 если пишут в студии?
0
Native x86
Эксперт Hardware
 Аватар для quwy
6853 / 3787 / 1024
Регистрация: 13.02.2013
Сообщений: 11,861
30.07.2014, 18:00
Цитата Сообщение от MIRAMIX Посмотреть сообщение
итак я рассматриваю только винду.получается если игры написаны на плюсах и для винды они используют винапи??
Любая программа для Windows использует WinAPI, даже если она написана не на плюсах. Программе просто для того, чтобы запуститься, уже нужно выполнить массу действий, требующих взаимодействия с операционной системой (например, запросить память для своих данных), а значит она уже использует вызовы WinAPI. Даже если автор программы ни разу в ее коде не вызвал ни одной системной функции, за него это сделают используемые им библиотеки (в том числе и встроенные в компилятор).
0
3012 / 1446 / 262
Регистрация: 16.03.2008
Сообщений: 6,449
Записей в блоге: 2
30.07.2014, 18:17
Писать (даже приведенный вами код) можно хоть в блокноте, хоть в FAR.
По хорошему используются IDE.
Это и MSVisualStudio, и Builder, а еще есть Netbeans, Codeblocks, QtCreator и т.д. и т.п.

Добавлено через 3 минуты
Цитата Сообщение от MIRAMIX Посмотреть сообщение
какая разница какая ide?главное как без этого винапи писать что нибудь
И в Студии можно писать без винапи. Даже если вы выберете шаблон WinApi application - просто надо будет удалить не нужное из предоставленного шаблона проекта. Ответ на вопрос "с winapi или без оного" определяется тем, что конкретно вы собираетесь писать (и под какую платформу)
0
30.07.2014, 22:00

Не по теме:

Цитата Сообщение от MIRAMIX Посмотреть сообщение
например в фильмах различные хакеры взламывают что-то и т.п
в небезысветном фильме "хакеры" по половине (вторая типа пропала) ассемблерного кода восстановили вторую половину. Вроде вообще в досе это делали:)

0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
31.07.2014, 08:20

Не по теме:

Цитата Сообщение от Kastaneda Посмотреть сообщение
по половине (вторая типа пропала) ассемблерного кода восстановили вторую половину
Мы так в молодости лабы сдавали. Типа сам делал - восстановишь.



MIRAMIX, винапи это связь с операционкой, с виндой в частности. Какие, там, кнопочки нажаты, что на телевизоре в данный момент показывается, все такое. А C++ это циклы, переменные, и так далее. И студия здесь это просто место, где удобно все это дело смешивать.
1
#MRoose
 Аватар для MIRAMIX
8 / 9 / 3
Регистрация: 22.02.2013
Сообщений: 416
31.07.2014, 10:36  [ТС]
quwy, voral, Kastaneda, SatanaXIII, мда.... я в недоумении... а в чатсности давайте определимся что такое винапи? то что я привел вверху код т.е.
Цитата Сообщение от MIRAMIX Посмотреть сообщение
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
это вид винапи или это сам с++?
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
31.07.2014, 11:02
Цитата Сообщение от MIRAMIX Посмотреть сообщение
это вид винапи или это сам с++?
Это Си :)

Язык определяет синтаксис. WinAPI - это набор функций для доступа к системе. Конкретно WinAPI использует синтаксис языка С (не С++). Всякие LRESULT и т.д. это просто define'ы (или typedef'ы) на стандартные типы языка С (или на типы, которые входят в расширение языка в MS компиляторе, зависит от используемого компилятора).
Преведенная тобой строка кода - это не WinAPI, это прототип ф-ции, в которой используются define'ы из windows.h (или где там они определены).
Чтоб понять, что такое WinAPI выясни, что такое API вообще. Тогда все встанет на свои места.
1
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
31.07.2014, 11:05
Цитата Сообщение от voral Посмотреть сообщение
Даже если вы выберете шаблон WinApi application - просто надо будет удалить не нужное из предоставленного шаблона проекта.
не знаю это ты имел ввиду или нет
но для Win приложений главная функция WinMain
для консоли main и разный стартовый код прилинковывается
так что, проще новый проект создать, чем неправильно созданный править
1
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
31.07.2014, 11:30
Цитата Сообщение от MIRAMIX Посмотреть сообщение
это вид винапи или это сам с++?
Адаптируя ответ Kastaneda до вопроса, представленный вами код это винапи.
Ни си, ни плюсы ничего сами по себе не знают об иконках, приложениях, кнопках и все остальном. Они могут только взять кусок памяти, как-то его обработать и поместить обратно. И собственно в обработке и заключается все программирование. Язык ничего не знает о том, с чем он сейчас работает.
А винапи - это это уже набор кем-то написанных функций, которые позволяют вам уже работать не с сырой памятью, а оперировать более-менее человеческими понятными абстракциями типа принтера или экрана монитора (контекстов устройств).
1
#MRoose
 Аватар для MIRAMIX
8 / 9 / 3
Регистрация: 22.02.2013
Сообщений: 416
31.07.2014, 11:49  [ТС]
Kastaneda, да я уже смотрел винапи это вид апи
0
3012 / 1446 / 262
Регистрация: 16.03.2008
Сообщений: 6,449
Записей в блоге: 2
31.07.2014, 12:39
Цитата Сообщение от ValeryS Посмотреть сообщение
не знаю это ты имел ввиду или нет
но для Win приложений главная функция WinMain
для консоли main и разный стартовый код прилинковывается
так что, проще новый проект создать, чем неправильно созданный правит
я не точно выразился.

Это всего лишь шаблоны - заранее подготовленные куски кода для последующего редактирования разеленные по типу задач. Соответственно, выбор конкретного шаблона (например winapi application) не означает, что с этого момента проект железобетонно прикован к winapi.
1
#MRoose
 Аватар для MIRAMIX
8 / 9 / 3
Регистрация: 22.02.2013
Сообщений: 416
31.07.2014, 12:53  [ТС]
фу значит если я выберу Прект Вин32 в студии я там могу писать хоть игру типа Far Cry 3 без винапи с но с директХ?
0
3012 / 1446 / 262
Регистрация: 16.03.2008
Сообщений: 6,449
Записей в блоге: 2
31.07.2014, 13:51
уфффф.....

Под ОС Windows максимум, что ты сможешь: не использовать winapi на прямую, а через какую либо библиотеку. MFC как пример или упоминавшийся ранее Qt. Но в итоге твое приложение все равно будет использовать winapi.

Вполне возможно, что можно обойтись и совсем, но это, как минимум, не целесообразно. И должны быть очень веские основания. Да и когда ты сможешь это сделать (под управлением винды) уровень знаний у тебя уже будет ну очень заметно выше чем сейчас

Добавлено через 4 минуты
Да, и уж коль зашел разговор об играх.
То не все игры пишутся совсем с 0. Тот же Far Cry использует готовый движок Dunia Engine (правда своей же разработки). И на нем же есть другие игры.

А есть и другие игровые движки (платные и не очень), которые можно использовать при разработке своих игр.
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
31.07.2014, 14:15
Цитата Сообщение от MIRAMIX Посмотреть сообщение
Прект Вин32 в студии я там могу писать хоть игру типа Far Cry 3 без винапи с но с директХ?
рекомендую книгу
Андре Ламот: Программирование игр для Windows
и
Программирование трехмерных игр для Windows.
рассмотрена и работа директХ и WinApi и даже физика
плюс по шагам создается простейшая игра
2
#MRoose
 Аватар для MIRAMIX
8 / 9 / 3
Регистрация: 22.02.2013
Сообщений: 416
31.07.2014, 15:58  [ТС]
Я просто кипиш поднял так как сказали мне что игры с 3д на винапи не рекомендуется и я задумался а где можно писать на плюсах если не в вин32 проекте но благодаря Вам узнал что там можно писать всякую ...)))
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
31.07.2014, 17:05
Цитата Сообщение от MIRAMIX Посмотреть сообщение
так как сказали мне что игры с 3д на винапи не рекомендуется
Имелось ввиду, что не надо самому писать на WinAPI, т.к. это будет сложно, долго и не всегда будет работать так, как было задумано. Нужно использовать какие-то высокоуровневые обертки (а то и готовые движки), типа перечисленных выше.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.07.2014, 17:05
Помогаю со студенческими работами здесь

Можно ли использовать клаcсы MFC (например CString) при создании проекта Win32?
я работаю в вижуал студио 2003

В чем писать код на винде?
дыа вопрос тупой, но что советуете какой-то текстовый редактор и компилятор или IDE?

Можно ли писать такой код, чтобы я мог где-то вставить нужный код у он появился во всех страницах
Вомщем, у меня есть сайт и у него есть очень много страниц и чтобы когда нужно что-то вставить на всех страницах, я не вставил код в каждом...

Проектировние транслятора: на чем писать код
Здравствуйте...помоги разобраться и подобрать литературу для дальней реализации... язык для которого проектируется транслятор -C язык...

На чем лучше писать код сайта?
даже не знал, как сформулировать вопрос. видел страницы сайта html, видел php, может еше какие есть. так вот, какая из них лучше в плане...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru