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

C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.63
MIRAMIX
2 / 2 / 1
Регистрация: 22.02.2013
Сообщений: 312
#1

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

30.07.2014, 16:27. Просмотров 1193. Ответов 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)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2014, 16:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Зная c++ в чем можно писать код кроме проекта Win32 в студии? (C++):

Как в C++ Win32 зная ID своей (например кнопки) узнать её HWND ??? - Visual C++
Как в C++ Win32 зная ID своей (например кнопки) узнать её HWND ??? Где-то видел API функцию... Весь инет обыскал... Заранее спасибо

Как писать по-русски в Visual C++ (win32 console application) - Visual C++
Подскажите, пожалуйста, как сделать, чтобы вместо каракуль были русские символы в VC++ (win32 console application)?

проблема с созданием проекта win32 - Visual C++
Помогите пожалуйста: при создании проекта win32 console application, я ввожу имя проекта, далее окно появляется:&quot;Welcome ....&quot; слева...

Для какой студии этот код? - Visual C++
Вот прога. Вроде для 2005, но не хочет ни компилить нормально, ни екзешник делать.. Если взять за умолчание, что код без ошибок, то в чем...

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

Можно работать с файлом зная что он в одной директории с экзешником но не зная в какой ? - C++
Вот И если нет - надо узнавать директорию ? А каким образом ? То есть программа будет запускаться из любой директории и создавать...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
quwy
Native x86
3213 / 2056 / 548
Регистрация: 13.02.2013
Сообщений: 6,867
30.07.2014, 16:35 #2
Цитата Сообщение от MIRAMIX Посмотреть сообщение
например в фильмах различные хакеры взламывают что-то и т.п


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

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

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

Цитата Сообщение от MIRAMIX Посмотреть сообщение
какая разница какая ide?главное как без этого винапи писать что нибудь
Любая программа, работающая под Windows, будет использовать WinAPI, хотите вы этого или нет, по другому просто не бывает. Программист, пишущий программу, может не использовать WinAPI напрямую, пользуясь вместо этого высокоуровневыми библиотеками типа Qt. В этом случае в его исходных текстах обращения к WinAPI может не быть вовсе, но код этих самых высокоуровневых библиотек все равно так или иначе с системой взаимодействует, а значит производит вызовы WinAPI-функций.
1
MIRAMIX
2 / 2 / 1
Регистрация: 22.02.2013
Сообщений: 312
30.07.2014, 17:49  [ТС] #5
quwy, итак я рассматриваю только винду.получается если игры написаны на плюсах и для винды они используют винапи???и их плюсовая часть написана в Проекте вин32 если пишут в студии?
0
quwy
Native x86
3213 / 2056 / 548
Регистрация: 13.02.2013
Сообщений: 6,867
30.07.2014, 18:00 #6
Цитата Сообщение от MIRAMIX Посмотреть сообщение
итак я рассматриваю только винду.получается если игры написаны на плюсах и для винды они используют винапи??
Любая программа для Windows использует WinAPI, даже если она написана не на плюсах. Программе просто для того, чтобы запуститься, уже нужно выполнить массу действий, требующих взаимодействия с операционной системой (например, запросить память для своих данных), а значит она уже использует вызовы WinAPI. Даже если автор программы ни разу в ее коде не вызвал ни одной системной функции, за него это сделают используемые им библиотеки (в том числе и встроенные в компилятор).
0
voral
452 / 433 / 66
Регистрация: 16.03.2008
Сообщений: 2,104
30.07.2014, 18:17 #7
Писать (даже приведенный вами код) можно хоть в блокноте, хоть в FAR.
По хорошему используются IDE.
Это и MSVisualStudio, и Builder, а еще есть Netbeans, Codeblocks, QtCreator и т.д. и т.п.

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

Не по теме:

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

0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,529
Завершенные тесты: 1
31.07.2014, 08:20 #9

Не по теме:

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



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

Язык определяет синтаксис. WinAPI - это набор функций для доступа к системе. Конкретно WinAPI использует синтаксис языка С (не С++). Всякие LRESULT и т.д. это просто define'ы (или typedef'ы) на стандартные типы языка С (или на типы, которые входят в расширение языка в MS компиляторе, зависит от используемого компилятора).
Преведенная тобой строка кода - это не WinAPI, это прототип ф-ции, в которой используются define'ы из windows.h (или где там они определены).
Чтоб понять, что такое WinAPI выясни, что такое API вообще. Тогда все встанет на свои места.
1
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
31.07.2014, 11:05 #12
Цитата Сообщение от voral Посмотреть сообщение
Даже если вы выберете шаблон WinApi application - просто надо будет удалить не нужное из предоставленного шаблона проекта.
не знаю это ты имел ввиду или нет
но для Win приложений главная функция WinMain
для консоли main и разный стартовый код прилинковывается
так что, проще новый проект создать, чем неправильно созданный править
1
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,529
Завершенные тесты: 1
31.07.2014, 11:30 #13
Цитата Сообщение от MIRAMIX Посмотреть сообщение
это вид винапи или это сам с++?
Адаптируя ответ Kastaneda до вопроса, представленный вами код это винапи.
Ни си, ни плюсы ничего сами по себе не знают об иконках, приложениях, кнопках и все остальном. Они могут только взять кусок памяти, как-то его обработать и поместить обратно. И собственно в обработке и заключается все программирование. Язык ничего не знает о том, с чем он сейчас работает.
А винапи - это это уже набор кем-то написанных функций, которые позволяют вам уже работать не с сырой памятью, а оперировать более-менее человеческими понятными абстракциями типа принтера или экрана монитора (контекстов устройств).
1
MIRAMIX
2 / 2 / 1
Регистрация: 22.02.2013
Сообщений: 312
31.07.2014, 11:49  [ТС] #14
Kastaneda, да я уже смотрел винапи это вид апи
0
voral
452 / 433 / 66
Регистрация: 16.03.2008
Сообщений: 2,104
31.07.2014, 12:39 #15
Цитата Сообщение от ValeryS Посмотреть сообщение
не знаю это ты имел ввиду или нет
но для Win приложений главная функция WinMain
для консоли main и разный стартовый код прилинковывается
так что, проще новый проект создать, чем неправильно созданный правит
я не точно выразился.

Это всего лишь шаблоны - заранее подготовленные куски кода для последующего редактирования разеленные по типу задач. Соответственно, выбор конкретного шаблона (например winapi application) не означает, что с этого момента проект железобетонно прикован к winapi.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2014, 12:39
Привет! Вот еще темы с ответами:

Можно ли писать такой код,мне в дальнейшем надо будет наследовать x и y, а другие два елемента нет - C++
сlass A { private: int a; public int x; A() { x=0; }

Чем можно проверить код С++? - C++
Виндоус 7 х64, хотел установить Borland C++ но х64 не запустилась, чем еще можно проверить такого рода код? #include &lt;iostream.h&gt; ...

код, который прекрасно выполняет Code::Blocks не выполняеться в Студии, как сделатьь так чтобы Студия воспринимала этот код?? - C++
Ребята, обьясните мне чего код, который прекрасно выполняет Code::Blocks не выполняеться в Студии, там требуються существенно другие...

Создание проекта win32 api в среде visual studio - C++
Скажите как создать проект win32 api, но с конструктором(не чистый winapi)В среде visual studio


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
31.07.2014, 12:39
Ответ Создать тему
Опции темы

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