Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.63
MIRAMIX
2 / 2 / 1
Регистрация: 22.02.2013
Сообщений: 312
30.07.2014, 16:27     Зная c++ в чем можно писать код кроме проекта Win32 в студии? #1
Прошу правильно понять:например в фильмах различные хакеры взламывают что-то и т.п

и вообще если что-то супер написано на с++ то это же не означает что на винапи в "Проект 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;
}
если я не прав то пж поправьте меня

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

Спасибо за понимание))
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2014, 16:27     Зная c++ в чем можно писать код кроме проекта Win32 в студии?
Посмотрите здесь:

Как в C++ Win32 зная ID своей (например кнопки) узнать её HWND ??? Visual C++
C++ Можно ли использовать клаcсы MFC (например CString) при создании проекта Win32?
Visual C++ проблема с созданием проекта win32
Можно работать с файлом зная что он в одной директории с экзешником но не зная в какой ? C++
Как писать по-русски в Visual C++ (win32 console application) Visual C++
Чем можно проверить код С++? C++
код, который прекрасно выполняет Code::Blocks не выполняеться в Студии, как сделатьь так чтобы Студия воспринимала этот код?? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
quwy
Native x86
 Аватар для quwy
2907 / 1879 / 489
Регистрация: 13.02.2013
Сообщений: 6,268
30.07.2014, 16:35     Зная c++ в чем можно писать код кроме проекта Win32 в студии? #2
Цитата Сообщение от MIRAMIX Посмотреть сообщение
например в фильмах различные хакеры взламывают что-то и т.п


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

Цитата Сообщение от MIRAMIX Посмотреть сообщение
вообще как создать приложение то есть ехе хоть без интерфейса но без винапи?консоль не рассматривается
Это как?
MIRAMIX
2 / 2 / 1
Регистрация: 22.02.2013
Сообщений: 312
30.07.2014, 17:16  [ТС]     Зная c++ в чем можно писать код кроме проекта Win32 в студии? #3
quwy, то есть если на плюсах то винапи обязательна?

Добавлено через 1 минуту
Цитата Сообщение от quwy Посмотреть сообщение
Может быть Builder. Может быть проект под Linux, там тоже на крестах пишут почти все. Да много чего может быть на C++ написано без студии и WinAPI.
какая разница какая ide?главное как без этого винапи писать что нибудь
quwy
Native x86
 Аватар для quwy
2907 / 1879 / 489
Регистрация: 13.02.2013
Сообщений: 6,268
30.07.2014, 17:31     Зная c++ в чем можно писать код кроме проекта Win32 в студии? #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от MIRAMIX Посмотреть сообщение
о есть если на плюсах то винапи обязательна?
Где я это сказал? Кресты -- это всего лишь язык программирования. На нем даже для микроконтроллеров программы пишут, какой там, к черту, WinAPI? WinAPI -- это интерфейс для взаимодействия операционной системы Windows с программами, написанными под эту систему, если нет Windows, то нет и WinAPI.

Цитата Сообщение от MIRAMIX Посмотреть сообщение
какая разница какая ide?главное как без этого винапи писать что нибудь
Любая программа, работающая под Windows, будет использовать WinAPI, хотите вы этого или нет, по другому просто не бывает. Программист, пишущий программу, может не использовать WinAPI напрямую, пользуясь вместо этого высокоуровневыми библиотеками типа Qt. В этом случае в его исходных текстах обращения к WinAPI может не быть вовсе, но код этих самых высокоуровневых библиотек все равно так или иначе с системой взаимодействует, а значит производит вызовы WinAPI-функций.
MIRAMIX
2 / 2 / 1
Регистрация: 22.02.2013
Сообщений: 312
30.07.2014, 17:49  [ТС]     Зная c++ в чем можно писать код кроме проекта Win32 в студии? #5
quwy, итак я рассматриваю только винду.получается если игры написаны на плюсах и для винды они используют винапи???и их плюсовая часть написана в Проекте вин32 если пишут в студии?
quwy
Native x86
 Аватар для quwy
2907 / 1879 / 489
Регистрация: 13.02.2013
Сообщений: 6,268
30.07.2014, 18:00     Зная c++ в чем можно писать код кроме проекта Win32 в студии? #6
Цитата Сообщение от MIRAMIX Посмотреть сообщение
итак я рассматриваю только винду.получается если игры написаны на плюсах и для винды они используют винапи??
Любая программа для Windows использует WinAPI, даже если она написана не на плюсах. Программе просто для того, чтобы запуститься, уже нужно выполнить массу действий, требующих взаимодействия с операционной системой (например, запросить память для своих данных), а значит она уже использует вызовы WinAPI. Даже если автор программы ни разу в ее коде не вызвал ни одной системной функции, за него это сделают используемые им библиотеки (в том числе и встроенные в компилятор).
voral
363 / 343 / 46
Регистрация: 16.03.2008
Сообщений: 1,737
30.07.2014, 18:17     Зная c++ в чем можно писать код кроме проекта Win32 в студии? #7
Писать (даже приведенный вами код) можно хоть в блокноте, хоть в FAR.
По хорошему используются IDE.
Это и MSVisualStudio, и Builder, а еще есть Netbeans, Codeblocks, QtCreator и т.д. и т.п.

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

Не по теме:

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

SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5534 / 2568 / 234
Регистрация: 01.11.2011
Сообщений: 6,346
Завершенные тесты: 1
31.07.2014, 08:20     Зная c++ в чем можно писать код кроме проекта Win32 в студии? #9

Не по теме:

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



MIRAMIX, винапи это связь с операционкой, с виндой в частности. Какие, там, кнопочки нажаты, что на телевизоре в данный момент показывается, все такое. А C++ это циклы, переменные, и так далее. И студия здесь это просто место, где удобно все это дело смешивать.
MIRAMIX
2 / 2 / 1
Регистрация: 22.02.2013
Сообщений: 312
31.07.2014, 10:36  [ТС]     Зная c++ в чем можно писать код кроме проекта Win32 в студии? #10
quwy, voral, Kastaneda, SatanaXIII, мда.... я в недоумении... а в чатсности давайте определимся что такое винапи? то что я привел вверху код т.е.
Цитата Сообщение от MIRAMIX Посмотреть сообщение
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
это вид винапи или это сам с++?
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4248 / 2780 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
31.07.2014, 11:02     Зная c++ в чем можно писать код кроме проекта Win32 в студии? #11
Цитата Сообщение от MIRAMIX Посмотреть сообщение
это вид винапи или это сам с++?
Это Си :)

Язык определяет синтаксис. WinAPI - это набор функций для доступа к системе. Конкретно WinAPI использует синтаксис языка С (не С++). Всякие LRESULT и т.д. это просто define'ы (или typedef'ы) на стандартные типы языка С (или на типы, которые входят в расширение языка в MS компиляторе, зависит от используемого компилятора).
Преведенная тобой строка кода - это не WinAPI, это прототип ф-ции, в которой используются define'ы из windows.h (или где там они определены).
Чтоб понять, что такое WinAPI выясни, что такое API вообще. Тогда все встанет на свои места.
ValeryS
Модератор
6413 / 4879 / 448
Регистрация: 14.02.2011
Сообщений: 16,180
31.07.2014, 11:05     Зная c++ в чем можно писать код кроме проекта Win32 в студии? #12
Цитата Сообщение от voral Посмотреть сообщение
Даже если вы выберете шаблон WinApi application - просто надо будет удалить не нужное из предоставленного шаблона проекта.
не знаю это ты имел ввиду или нет
но для Win приложений главная функция WinMain
для консоли main и разный стартовый код прилинковывается
так что, проще новый проект создать, чем неправильно созданный править
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5534 / 2568 / 234
Регистрация: 01.11.2011
Сообщений: 6,346
Завершенные тесты: 1
31.07.2014, 11:30     Зная c++ в чем можно писать код кроме проекта Win32 в студии? #13
Цитата Сообщение от MIRAMIX Посмотреть сообщение
это вид винапи или это сам с++?
Адаптируя ответ Kastaneda до вопроса, представленный вами код это винапи.
Ни си, ни плюсы ничего сами по себе не знают об иконках, приложениях, кнопках и все остальном. Они могут только взять кусок памяти, как-то его обработать и поместить обратно. И собственно в обработке и заключается все программирование. Язык ничего не знает о том, с чем он сейчас работает.
А винапи - это это уже набор кем-то написанных функций, которые позволяют вам уже работать не с сырой памятью, а оперировать более-менее человеческими понятными абстракциями типа принтера или экрана монитора (контекстов устройств).
MIRAMIX
2 / 2 / 1
Регистрация: 22.02.2013
Сообщений: 312
31.07.2014, 11:49  [ТС]     Зная c++ в чем можно писать код кроме проекта Win32 в студии? #14
Kastaneda, да я уже смотрел винапи это вид апи
voral
363 / 343 / 46
Регистрация: 16.03.2008
Сообщений: 1,737
31.07.2014, 12:39     Зная c++ в чем можно писать код кроме проекта Win32 в студии? #15
Цитата Сообщение от ValeryS Посмотреть сообщение
не знаю это ты имел ввиду или нет
но для Win приложений главная функция WinMain
для консоли main и разный стартовый код прилинковывается
так что, проще новый проект создать, чем неправильно созданный правит
я не точно выразился.

Это всего лишь шаблоны - заранее подготовленные куски кода для последующего редактирования разеленные по типу задач. Соответственно, выбор конкретного шаблона (например winapi application) не означает, что с этого момента проект железобетонно прикован к winapi.
MIRAMIX
2 / 2 / 1
Регистрация: 22.02.2013
Сообщений: 312
31.07.2014, 12:53  [ТС]     Зная c++ в чем можно писать код кроме проекта Win32 в студии? #16
фу значит если я выберу Прект Вин32 в студии я там могу писать хоть игру типа Far Cry 3 без винапи с но с директХ?
voral
363 / 343 / 46
Регистрация: 16.03.2008
Сообщений: 1,737
31.07.2014, 13:51     Зная c++ в чем можно писать код кроме проекта Win32 в студии? #17
уфффф.....

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

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

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

А есть и другие игровые движки (платные и не очень), которые можно использовать при разработке своих игр.
ValeryS
Модератор
6413 / 4879 / 448
Регистрация: 14.02.2011
Сообщений: 16,180
31.07.2014, 14:15     Зная c++ в чем можно писать код кроме проекта Win32 в студии? #18
Цитата Сообщение от MIRAMIX Посмотреть сообщение
Прект Вин32 в студии я там могу писать хоть игру типа Far Cry 3 без винапи с но с директХ?
рекомендую книгу
Андре Ламот: Программирование игр для Windows
и
Программирование трехмерных игр для Windows.
рассмотрена и работа директХ и WinApi и даже физика
плюс по шагам создается простейшая игра
MIRAMIX
2 / 2 / 1
Регистрация: 22.02.2013
Сообщений: 312
31.07.2014, 15:58  [ТС]     Зная c++ в чем можно писать код кроме проекта Win32 в студии? #19
Я просто кипиш поднял так как сказали мне что игры с 3д на винапи не рекомендуется и я задумался а где можно писать на плюсах если не в вин32 проекте но благодаря Вам узнал что там можно писать всякую ...)))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2014, 17:05     Зная c++ в чем можно писать код кроме проекта Win32 в студии?
Еще ссылки по теме:

Для какой студии этот код? Visual C++
C++ В чем писать?
Можно ли писать такой код,мне в дальнейшем надо будет наследовать x и y, а другие два елемента нет C++
Создание проекта win32 api в среде visual studio C++
Аналог проекта Win32/VCL (Builder) C++ Linux

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

Или воспользуйтесь поиском по форуму:
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4248 / 2780 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
31.07.2014, 17:05     Зная c++ в чем можно писать код кроме проекта Win32 в студии? #20
Цитата Сообщение от MIRAMIX Посмотреть сообщение
так как сказали мне что игры с 3д на винапи не рекомендуется
Имелось ввиду, что не надо самому писать на WinAPI, т.к. это будет сложно, долго и не всегда будет работать так, как было задумано. Нужно использовать какие-то высокоуровневые обертки (а то и готовые движки), типа перечисленных выше.
Yandex
Объявления
31.07.2014, 17:05     Зная c++ в чем можно писать код кроме проекта Win32 в студии?
Ответ Создать тему
Опции темы

Текущее время: 16:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru