Форум программистов, компьютерный форум, киберфорум
OpenGL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
175 / 10 / 1
Регистрация: 05.08.2024
Сообщений: 73

Код из CodeBlocks не работает в Visual Studio 2022

05.12.2024, 07:12. Показов 6277. Ответов 54
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я все время работал в средах разработки wing и CodeBlocks. В CodeBlocks я работал для C++ и OpenGL проектов. Недавно решил попробовать Visual Studio, но начальный код из CodeBlocks проекта OpenGL в Visual Studio не работает и выдает ошибку:

Ошибка (активно) E0513 значение типа "const char *" нельзя присвоить сущности типа "LPCWSTR" (aka "const WCHAR *")
аргумент типа "const char *" несовместим с параметром типа "LPCWSTR" (aka "const WCHAR *")
Project1 D:\Мои документы\Desktop\C++\Project1\Project1\ Source.cpp 33

И еще несколько ошибок данного типа. Решил задокументировать строки с ошибками, я понимал, что сам код перестанет работать при пропаже строк, но попытка - не пытка. По итогу ошибка пошла дальше и прошлась по аргументам функции

CreateWindowEx(0,
"GLSample",
"OpenGL Sample",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
256,
256,
NULL,
NULL,
hInstance,
NULL);

Догадываюсь, что дело в компиляторе, но могут быть и другие тонкости. Как исправить данную ошибку?

Вот код:

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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
#include <windows.h>
#include <gl/gl.h>
 
LRESULT CALLBACK WindowProc(HWND, UINT, WPARAM, LPARAM);
void EnableOpenGL(HWND hwnd, HDC*, HGLRC*);
void DisableOpenGL(HWND, HDC, HGLRC);
 
 
int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine,
                   int nCmdShow)
{
    WNDCLASSEX wcex;
    HWND hwnd;
    HDC hDC;
    HGLRC hRC;
    MSG msg;
    BOOL bQuit = FALSE;
    float theta = 0.0f;
 
    /* register window class */
    wcex.cbSize = sizeof(WNDCLASSEX);
    wcex.style = CS_OWNDC;
    wcex.lpfnWndProc = WindowProc;
    wcex.cbClsExtra = 0;
    wcex.cbWndExtra = 0;
    wcex.hInstance = hInstance;
    wcex.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
    wcex.lpszMenuName = NULL;
    wcex.lpszClassName = "GLSample";
    wcex.hIconSm = LoadIcon(NULL, IDI_APPLICATION);;
 
 
    if (!RegisterClassEx(&wcex))
        return 0;
 
    /* create main window */
    hwnd = CreateWindowEx(0,
                          "GLSample",
                          "OpenGL Sample",
                          WS_OVERLAPPEDWINDOW,
                          CW_USEDEFAULT,
                          CW_USEDEFAULT,
                          256,
                          256,
                          NULL,
                          NULL,
                          hInstance,
                          NULL);
 
    ShowWindow(hwnd, nCmdShow);
 
    /* enable OpenGL for the window */
    EnableOpenGL(hwnd, &hDC, &hRC);
 
    /* program main loop */
    while (!bQuit)
    {
        /* check for messages */
        if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
        {
            /* handle or dispatch messages */
            if (msg.message == WM_QUIT)
            {
                bQuit = TRUE;
            }
            else
            {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
            }
        }
        else
        {
            /* OpenGL animation code goes here */
 
            glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
            glClear(GL_COLOR_BUFFER_BIT);
 
            glPushMatrix();
            glRotatef(theta, 0.0f, 0.0f, 1.0f);
 
            glBegin(GL_TRIANGLES);
 
                glColor3f(1.0f, 0.0f, 0.0f);   glVertex2f(0.0f,   1.0f);
                glColor3f(0.0f, 1.0f, 0.0f);   glVertex2f(0.87f,  -0.5f);
                glColor3f(0.0f, 0.0f, 1.0f);   glVertex2f(-0.87f, -0.5f);
 
            glEnd();
 
            glPopMatrix();
 
            SwapBuffers(hDC);
 
            theta += 1.0f;
            Sleep (1);
        }
    }
 
    /* shutdown OpenGL */
    DisableOpenGL(hwnd, hDC, hRC);
 
    /* destroy the window explicitly */
    DestroyWindow(hwnd);
 
    return msg.wParam;
}
 
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch (uMsg)
    {
        case WM_CLOSE:
            PostQuitMessage(0);
        break;
 
        case WM_DESTROY:
            return 0;
 
        case WM_KEYDOWN:
        {
            switch (wParam)
            {
                case VK_ESCAPE:
                    PostQuitMessage(0);
                break;
            }
        }
        break;
 
        default:
            return DefWindowProc(hwnd, uMsg, wParam, lParam);
    }
 
    return 0;
}
 
void EnableOpenGL(HWND hwnd, HDC* hDC, HGLRC* hRC)
{
    PIXELFORMATDESCRIPTOR pfd;
 
    int iFormat;
 
    /* get the device context (DC) */
    *hDC = GetDC(hwnd);
 
    /* set the pixel format for the DC */
    ZeroMemory(&pfd, sizeof(pfd));
 
    pfd.nSize = sizeof(pfd);
    pfd.nVersion = 1;
    pfd.dwFlags = PFD_DRAW_TO_WINDOW |
                  PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
    pfd.iPixelType = PFD_TYPE_RGBA;
    pfd.cColorBits = 24;
    pfd.cDepthBits = 16;
    pfd.iLayerType = PFD_MAIN_PLANE;
 
    iFormat = ChoosePixelFormat(*hDC, &pfd);
 
    SetPixelFormat(*hDC, iFormat, &pfd);
 
    /* create and enable the render context (RC) */
    *hRC = wglCreateContext(*hDC);
 
    wglMakeCurrent(*hDC, *hRC);
}
 
void DisableOpenGL (HWND hwnd, HDC hDC, HGLRC hRC)
{
    wglMakeCurrent(NULL, NULL);
    wglDeleteContext(hRC);
    ReleaseDC(hwnd, hDC);
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.12.2024, 07:12
Ответы с готовыми решениями:

Visual Studio 2022 не работает
Пользовался раньше с большим удовольствием Visual Studio 2019 года, и всё у меня было хорошо, недавно решил подучить C# и решил обновить до...

Не запускается код в Visual Studio 2022
using Telegram.Bot; using Telegram.Bot.Types; namespace Telegram_Bot { internal class Program { static void...

Не работает отладка кода C# в Visual Studio 2022
Делаю надстройку для Revit, но, думаю, сама программа тут роли не играет. Распишу полный порядок моих действий, благо, их не много: ...

54
9991 / 2963 / 497
Регистрация: 05.10.2013
Сообщений: 8,138
Записей в блоге: 243
14.12.2024, 15:19
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Daniil_G Посмотреть сообщение
но уже появилось множество совсем других ошибок (их было около 28)
У меня тоже эти ошибки возникли, когда я запускал ваш код из первого сообщения в видео в сообщении #14. Я показал в видео, как избавиться от этих ошибок. Нужно добавить строку подключения библиотеки OpenGL32 в опции линкера в файле CMakeLists.txt в этой сроке: target_link_libraries(app opengl32) для проекта на языке Си:

Code
1
2
3
4
5
6
7
cmake_minimum_required(VERSION 3.20)
 
project(my-c-project LANGUAGES C)
 
add_executable(app main.c)
 
target_link_libraries(app opengl32)
Почему я именно на Си показал, как запустить ваш проект в Qt Creator, CMake и MinGW? Потому что вы недавно публиковали пример на Си в этом сообщении: Нужно написать простой код игры Арканоид на Си Но в данной теме вы опубликовали пример в теге C++, может просто не нашли тег Си?

Если нужен С++, то в строке project(my-c-project LANGUAGES C) нужно заменить "C" на "CXX", а лучше добавить CXX вот так, чтобы подключать Си-файлы, например, GLAD:

Code
1
project(my-c-project LANGUAGES C CXX)
Если вы и в правду решили пока ограничиться языком Си, то в этом есть смысл. Вас не будут отвлекать классы и ООП. Так же видно по примеру, что вы решили пока остановиться на OpenGL 1 с статическим конвейером. В этом тоже есть свой смысл. Но глубоко эту версию OpenGL не надо изучать. Например, не надо изучать как тени делать на ней или детектировать клик мыши по объекту, текст выводить. Вы можете сосредоточится на простых игровых демках, таких как Арканоид, Змейка, Тетрис и т.д. Потом добавьте вывод текстур в эти демки. Я бы одну игровую демку сделал на OpenGL 1 или несколько, добавил бы текстур в неё, а потом бы переключился бы на шейдерный OpenGL. Жаль, что после Pygame вы параллельно не стали изучать библиотеку SDL3 и её API, потому что у Pygame и SDL3 очень близкий синтаксис в API, а так как SDL3 написана на Си, то могли бы практиковаться с Си. На самом деле любой путь имеет место быть, главное, его стараться регулярно осознанно придерживаться. Просто у SDL3 много возможностей - можно его API использовать, можно для OpenGL/Vulkan/DirectX, можно собирать игры для Android, iOS и Web и т.д. WinAPI только для Windows и сложнее, чем SDL3, но может быть полезным для самообразования. Хотя вообще-то WinAPI-приложения можно на Linux запускать с помощью Wine, но я не пробовал, у меня нет Линукс. Может вы решили только для Windows писать, а Android вам не нужен. Любой вариант имеет место быть. Зато на WinAPI полный контроль, вы не зависите от разработчиков библиотек для окна, изучаете, как работает Windows и т.д. В WinAPI и библиотеках для окна есть свой плюсы и минусы, главное, лично для вас какие плюсы имеют больший приоритет.

Цитата Сообщение от Daniil_G Посмотреть сообщение
А Cmake заняться смогу только через несколько месяцев
Ничего страшного в CMake нет, надо просто начать его использовать и он сам естественным образом начнёт изучаться. Если действительно продолжите изучать OpenGL, то вы будете интересоваться, например, как подключить библиотеку для работы с текстурами (к примеру, stb_image), с матрицами (GLM) и т.д. Это делается легко. Я знаю, что в VS 2022 вы можете создавать CMake-проекты. Я не пробовал, но читал об этом.

Вы можете собрать свой пример из первого сообщения из консоли с помощью CMake. Раз у вас установлен Code::Blocks, значит у вас есть MinGW. Путь к bin должен быть в переменной окружения Path, чтобы из консоли запускалось. А так же должен быть установлен CMake. Путь к bin тоже должен быть в Path. Код можно набирать в Notepad++ или другом легковесном редакторе кода. Я использую Sublime Text 4. У вас есть пример, где хранятся два файла: main.c и CMakeLists.txt. Вы открываете консоль в папке проекта и копируйте команду:

Bash
1
cmake -G "MinGW Makefiles" -S . -B dist
Происходин конфигурирование проекта. Здесь:
  • "cmake" - команда, за которой идут ключи с символом "-"
  • Первый ключ -G, наверное, сокращение от слова Generator, то есть "Генератор". За этим ключом идёт строка "MinGW Makefiles", что означает "генерировать MinGW make-файлы. Где источник и результат генерации показано после следующих ключей -S (Source) и -B (Build)
  • После ключа -S (Source) идёт точка, это значит, что источник в корне, откуда запускается cmake - это папка где лежит файл CMakeLists.txt
  • После ключа -B (Build) идёт название папки "dist" - можно любое имя написать. Эта папка буде сгенерирована командой cmake и в этой паке будут созданы make-файлы MinGW.

После конфигурирования нужно зайти в папку "dist" командой:
Bash
1
cd dist
и ввести команду построения:
Bash
1
cmake --build .
Будет создан EXE в текущей папке, потому что после ключа --build следует точка.
0
14.12.2024, 16:31

Не по теме:

Цитата Сообщение от Daniil_G Посмотреть сообщение
мне надо изучить до конца OpenGL, и после этого смогу заняться OpenGL
Наверно второе OpenСL. И "до конца" - не очень удачное выражение, для уверенного владения OpenGL нужны годы

0
175 / 10 / 1
Регистрация: 05.08.2024
Сообщений: 73
14.12.2024, 18:39  [ТС]
Хорошо, спасибо, попробую
0
401 / 36 / 8
Регистрация: 09.01.2019
Сообщений: 148
17.12.2024, 14:36
Daniil_G, Вы проверили вариант, что я написал? Ваша тема создана с вопросом запуска шаблонного кода из кодблокса в visual studio, решение я приложил. Если оно отвечает на Ваш вопрос, пометьте тему решённой, а то намусорили в теме уже, не приложив ни одного решения
1
9991 / 2963 / 497
Регистрация: 05.10.2013
Сообщений: 8,138
Записей в блоге: 243
17.12.2024, 18:31
Цитата Сообщение от EugeneNN Посмотреть сообщение
а то намусорили в теме уже, не приложив ни одного решения
Я не считаю мусором свои сообщения и сообщения других. Надо индивидуально смотреть в контексте автора темы. Несколько решений было предложено для исправления первой ошибки темы. Например, с помощью универсального макроса _T("text"), а потом alecss131 предложил использовать макрос TEXT("text") вместо _T("text"), потому что TEXT("text") не требует подключения tchar.h. Этот способ не зависит от настройки "General > Character Set". Ожидалось, что после исправления первой ошибки Daniil_G, опубликует список других ошибок и постепенно все ошибки будут решены. Но для Daniil_G тема с переносом проекта в VS перестала быть актуальной, так как VS занимает всё свободное место на его ноутбуке, что он даже подумывал, чтобы хранить проекты на флешке, о чём он написал в сообщении #13:

Цитата Сообщение от Daniil_G Посмотреть сообщение
Думаю, что не получится. Для меня visual studio изначально представлял проблему из-за своего объема, что перечеркивает на возможность работать над другими проектами. (хотя можно сохранять проекты на флешке)
Есть немалая вероятность, что Daniil_G уже удалил VS, потому что написал в сообщении выше: "Думаю, что не получится", а потом написал "попробую" просто из вежливости, а ещё спрашивал в личке, стоит ли ему начать изучать фреймворк Qt. Может кто-то другой проверит ваше решение в VS и отметит его, как решение. Скорее всего, Daniil_G не будет в ближайшее время использовать VS, потому что в другой теме он писал, что у него слабый ноутбук:

Цитата Сообщение от Daniil_G Посмотреть сообщение
извините, но у меня не получиться как-либо взаимодействовать с blender. Мой ноутбук слаб и не поддерживает никакие 3d программы (кроме powerpoint3d и paint3d, но и они у меня находятся в 6-12 кадров в секунду)
Я представляю, как у него шумит и тормозит ноутбук от VS 2022. Как альтернативу, я предложил использовать Qt Creator, CMake и MinGW. Даже показал, как запустить его пример. Это всё займёт примерно 1 GB, а для VS 2022 нужно как минимум 7.4 GB. А раз у него есть Code::Blocks, то MinGW ему ставить не надо. Qt Creator займёт всего 465 MB. Например, у меня довольно старый ноутбук Asus K53S от 2011 года с i3. На нём Qt Creator работает тихо и шустро. То есть в контексте Daniil_G и его темы с переносом примера - Qt Creator был бы одним из лучших выборов. Он меня в личке спрашивал стоит ли ему сейчас начать изучать фреймворк Qt. Почему бы не начать. От VS останеться свободным 7.4 GB, а Qt займёт 4 GB, включая MinGW, CMake и Qt Creator. Но раз уж начал изучать WinAPI и OpenGL v1, то может лучше пока на этом упражняться с небольшими игровыми демками. Может лучше пока поработать с чистым Си и C++, а через пол года, год начинать пробовать работать с фреймворком Qt.
1
9991 / 2963 / 497
Регистрация: 05.10.2013
Сообщений: 8,138
Записей в блоге: 243
17.12.2024, 19:22
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Ожидалось, что после исправления первой ошибки Daniil_G, опубликует список других ошибок и постепенно все ошибки будут решены. Но для Daniil_G тема с переносом проекта в VS перестала быть актуальной
Строго говоря, согласно правилу 5.16 форум запрещает создавать темы с множеством вопросов:
5.16. Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.
Daniil_G, вам первым делом надо было погуглить текст ошибки из первого сообщения темы:
E0513 значение типа "const char *" нельзя присвоить сущности типа "LPCWSTR" (aka "const WCHAR *")
Если вы скопируете этот текст в Google, то в результате поиска одна из первых ссылок - это ссылка на следующую тему на КиберФорум'е: E0513 значение типа "const wchar_t *" нельзя присвоить сущности типа "LPWSTR" Обратите внимание, что в той теме в самом низу есть ссылки на другие темы. Представляете, как быстро вы бы исправили эту ошибку. Наверняка, вы бы могли погуглить текст второй ошибки, исправить её и т.д. Это намного быстрее, чем ждать неделю, две и больше на форуме. Ещё очень полезно спрашивать AI, например, Gemini в Chrome, либо в поиске Google сейчас выдаётся ответ AI, если у вас выставлено, что вы сидите в США. За одно вы практикуетесь с английским. Только надо иметь ввиду, что иногда AI ошибаются, но на вопросы начинающих, как правило, AI отвечают отлично. Если плохо формулируете вопросы на английском, то открывайте переводчик http://translate.google.com/ и переводите вопросы с русского на английский, а потом ответы - с английского на русский.
1
401 / 36 / 8
Регистрация: 09.01.2019
Сообщений: 148
17.12.2024, 20:54
8Observer8,
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Я не считаю мусором свои сообщения и сообщения других
Я не планировал оскорбить или принизить чьи-либо ответы в данной теме. Смысл моего сообщения был успешно Вами расширен:
Цитата Сообщение от 8Observer8 Посмотреть сообщение
согласно правилу 5.16 форум запрещает создавать темы с множеством вопросов
Ответ именно на вопрос, заданный в шапке поста - я дал, предварительно проверив его.
Т.к. автор работает с CodeBlocks и допотопным OpenGL, с весьма высокой вероятностью он взял за основу туториал с канала Begin-End на youtube, а там с первого же видео существует эта проблема, с которой он и пришёл сюда. Откуда я знаю? В личной переписке спрашивал решение у автора канала, в итоге нашёл его сам, ещё 4 года назад.
Вот, собственно, и всё.
1
9991 / 2963 / 497
Регистрация: 05.10.2013
Сообщений: 8,138
Записей в блоге: 243
17.12.2024, 22:58
Цитата Сообщение от EugeneNN Посмотреть сообщение
Ответ именно на вопрос, заданный в шапке поста - я дал, предварительно проверив его.
По крайней мере, макросы _T("text") из tchar.h и TEXT("text") частично решают проблему из шапки темы и полностью решают проблему из первого сообщения темы, что точно должно работать в VS. Я проверял из консоли на CMake и из Qt Creator. По-хорошему, я считаю, что текст ошибки из первого сообщения должен быть шапкой темы, но предварительно прогуглин. Вы дали ответ и дополнительно сообщили автору темы, чтобы он проверил и отметил его, как решение - это нормально, но нельзя писать, что какие-то ответы - это мусор. Это очень оскорбительно, потому что каждый старался помочь, тратил время, и вдруг пишут - это мусор. Что здесь мусор - это решают модераторы. У каждого своя точка зрения на форуме, как помочь автору темы. Я расценил, что истинный смысл темы в том, что автору не хочется, по каким-то причинам, больше быть на Code::Blocks, поэтому он предпринял попытку использовать VS, но потом он понял, что VS слишком большая для его ноутбука по весу и напрягает его слабый ноутбук, поэтому эта тема перестала быть для него актуальной, о чём он писал в сообщении 13. В этот момент я предложил другое решение этой проблемы - взять Qt Creator и CMake отдельно от фреймворка Qt. Я потратил несколько часов, чтобы подготовиться и с примерно 5-й попытки записать видео. Daniil_G бы прекрасно бы разобрался, как использовать Qt Creator этому, где можно ставить точки останова, выполнять по шагам, иметь завершение введённого кода и подсказки. Я в основном использую Sublime Text 4 и консольные команды CMake, если не нужно отлаживать по шагам или использовать авто дополенние кода. Кстати, после 300 сообщений и 500 балов репутации получите доступ к кнопке выделения лучшего ответа: Права пользователей форума
1
401 / 36 / 8
Регистрация: 09.01.2019
Сообщений: 148
18.12.2024, 10:44
Цитата Сообщение от 8Observer8 Посмотреть сообщение
VS слишком большая для его ноутбука по весу и напрягает его слабый ноутбук
Цитата Сообщение от 8Observer8 Посмотреть сообщение
другое решение этой проблемы - взять Qt Creator и CMake отдельно от фреймворка Qt
Правильное решение в данной ситуации:
1) взять VS Code с плагином C/C++ Extension Pack, где включены также CMake Tools (подробно на форуме писал Zayats80880 в одной из тем по SFML).
2) установить CMake
3) установить пак w64-devkit (просто распаковать последний релиз с гитхаба и указать переменную в PATH папку bin в корне пака)

Гарантирую, работаю с этим набором лично, взлетит на самом дохлом ПК + человек получит отличный редактор для работы с кодом и инструментарий GNU Tools с современными компиляторами gcc/g++, всё это без проблем и вообще каких-либо изменений переносится в линукс
1
9991 / 2963 / 497
Регистрация: 05.10.2013
Сообщений: 8,138
Записей в блоге: 243
18.12.2024, 12:15
Цитата Сообщение от EugeneNN Посмотреть сообщение
Правильное решение в данной ситуации:
1) взять VS Code с плагином C/C++ Extension Pack, где включены также CMake Tools
Это решение я пробовал много раз с разными языками: C++, Python, JavaScript, C# и т.д. Оно мне не помогло. Ноутбук греется и шумит. Я даже удалял все плагины из VSCode, чтобы хотя бы комфортно работать с JavaScript, HTML и CSS, но это тоже не помогло. Мой Asus K53S шумит и греется даже когда почищен и термопаста заменена. Мне некомфортно работать, когда он шумит. C Qt Creator ноут шумит совсем немного. Запускаю Qt Creator очень редко - когда надо поставить точки останова и отладить по шагам или нужно освоить новую библиотеку (или те функции, которые я не использовал) и смотреть автозавершение кода. Раньше набирал код на C/C++, JS, Python в Notepad++, а сейчас в Sublime Text 4.

Если сравнить VSCode и Qt Creator по потреблению оперативной памяти, то Qt Creator требует 187 MB, а VSCode (без плагинов) требует от 700 MB для проектов на JS/HTML/CSS. Причём потребление растёт и до 900 MB и больше и даже переваливает на 1 GB при отладке по шагам.

Для кодинга без автозавершения кода, то мне больше всего нравится Sublime Text 4 и Notepad++ - тоже неплохо, чем VSCode и Qt Creator. Notepad++ потребляет 127 MB оперативы, а Sublime Text 4 потребляет тоже примерно столько же. Сейчас у меня открыто 5 проектов в ST и это требует 254 MB.

Я думаю, что у автора темы ноутбук гораздо слабее, чем у меня, потому что он писал в другой теме, что современная версия Blender у него работает, выдавая 6-12 FPS. А у меня Blender работает без тормозов, но греется, как чайник и очень сильно шумит. Поэтому в той теме я посоветовал Blender 2.67, которым сам пользуюсь. Я экспериментальным путём нашёл, что даже следующая версия 2.68 уже заставляет ноут немного шуметь. Но 2.67 большее чем достаточна для меня для программистской графики, самообучения, анимаций, кодинга на Blender Python API и для простого редактирования моделей, анимаций, UV-развёртки и т.д.

Цитата Сообщение от EugeneNN Посмотреть сообщение
Гарантирую, работаю с этим набором лично, взлетит на самом дохлом ПК + человек получит отличный редактор для работы с кодом и инструментарий GNU Tools с современными компиляторами gcc/g++, всё это без проблем и вообще каких-либо изменений переносится в линукс
Взлетит, то оно взлетит, но как по ощущениям будет. У меня даже Unreal Engine 4 взлетел в 2014-м и я его изучал, пока не вышел Unity 5 в 2015-м, но работать лично мне некомфортно, когда ноут шумит и когда я вижу, что потребление оперативы в районе 1 GB. Недавно я выбирал какой движок параллельно с SDL3 и Box2D v3 изучать: Godot или Unity. В результате, на современном Godot сильно шумит, а современный Unity я даже не стал пробовать. Я поставил старый Unity 5.3.0f4. Немного ноут шумит. Я поставил Unity, чтобы выполнять туториалы NoobTuts (https://noobtuts.com/unity) и переводить из на SDL3, Box2D v3, OpenGL, WebGL и т.д. Вот вариант c Qt Creator у меня гораздо тише работает, чем VSCode. То есть VSCode шумит выше среднего, а Qt Creator почти не шумит, а на Sublime Text 4 - вообще не шумит, как и с Notepad++. Потом на Qt Creator гораздо проще показать, как работать CMake и MinGW. Достаточно добавить пути bin в Path. Qt Creator просто создаёт проекты CMake и открывает CMakeLists.txt Никаких больше настроек в нём делать не надо.

Сейчас у меня установлен VSCode. Я его запускаю очень редко. Мне достаточно Sublime Text 4. Автодозавершение кода меня только отвлекает - мне комфортнее без него, чтобы не забывать названия классов и методов библиотек. VSCode - на случай отладки JS-проектов по шагам. VSCode можно одновременно ставить точки останова на серверной части на Node.js и на клиентской части, чтобы отлаживать клиент-серверные программы на веб-сокетах. Если отлаживать JS не надо, то использую Sublime Text 4, а клиентскую часть можно отлаживать в браузере.

Добавлено через 17 минут
Цитата Сообщение от EugeneNN Посмотреть сообщение
Правильное решение в данной ситуации:
А разве моё решение с Qt Creator не является правильным в данной ситуации? Я не делал никаких хаков по выдёргиванию Qt Creator из фреймворка Qt. Qt Creator в архиве с EXE есть на GitHub Releases в отдельном репозитории от фреймворка Qt. Потом Qt это самый популярный GUI-фреймворк в мире C++ в наёмном труде. Высока вероятность, что автор будет зарабатывать деньги на этом фреймворке в будущем. Пусть пока познакомиться с средой, либо использует её для чистого C, C++ и Python. В данной ситуации, мне нужно было записать видео для начинающего, как быстро легко и просто настроить среду для работы с CMake. Я, правда, показал, как вручную выставить пути к bin-папкам CMake и MinGW в настройках Qt Creator. На самом деле, пути к bin-папкам можно было добавить в Path, и тогда бы в Qt Creator вообще ничего настраивать не нужно было. Она бы сам нашёл и CMake и MinGW. А если Qt Creator поставить вместе с фреймворком Qt, то в установщике можно было просто поставить галочки напротив CMake и MinGW. То есть в составе Qt поставляется CMake и MinGW (а так же MSVC). Я прост показал, как скачать релизы c GitHub: Qt Creator, CMake и MinGW без установки их, а просто с распаковкой архивов из GitHub Releases. Qt Creator также доступен для Linux и macOS.
1
Модератор
Эксперт Java
 Аватар для alecss131
2902 / 1407 / 413
Регистрация: 11.08.2017
Сообщений: 4,512
Записей в блоге: 2
18.12.2024, 12:30
Тема немного ушла в сторону. Почему все проигнорировали мой совет использовать не макро а функции?
Например функция из темы CreateWindowEx это не функция а макрос, вот его код (файл WinUser.h)
C++
1
2
3
4
5
#ifdef UNICODE
#define CreateWindowEx  CreateWindowExW
#else
#define CreateWindowEx  CreateWindowExA
#endif // !UNICODE
И теперь прототипы функций
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
WINUSERAPI
HWND
WINAPI
CreateWindowExA(
    _In_ DWORD dwExStyle,
    _In_opt_ LPCSTR lpClassName,
    _In_opt_ LPCSTR lpWindowName,
    _In_ DWORD dwStyle,
    _In_ int X,
    _In_ int Y,
    _In_ int nWidth,
    _In_ int nHeight,
    _In_opt_ HWND hWndParent,
    _In_opt_ HMENU hMenu,
    _In_opt_ HINSTANCE hInstance,
    _In_opt_ LPVOID lpParam);
WINUSERAPI
HWND
WINAPI
CreateWindowExW(
    _In_ DWORD dwExStyle,
    _In_opt_ LPCWSTR lpClassName,
    _In_opt_ LPCWSTR lpWindowName,
    _In_ DWORD dwStyle,
    _In_ int X,
    _In_ int Y,
    _In_ int nWidth,
    _In_ int nHeight,
    _In_opt_ HWND hWndParent,
    _In_opt_ HMENU hMenu,
    _In_opt_ HINSTANCE hInstance,
    _In_opt_ LPVOID lpParam);
Если не нужен юникод, то вместо CreateWindowEx стоит использовать CreateWindowExA
И я считаю, что если надо писать с использованием WinAPI то тут без сомнения лучше всего будет родной компилятор MSVC, хотя он и обладает некоторыми особенностями. Хотя если использовать проект созданный на основе CMake например, то в настройках проекта не будет юникода и CreateWindowEx будет раскрываться в CreateWindowExA вместо CreateWindowExW

VSCode я использую только для языка Swift, так как вне мака для него нету нормальных IDE, а так же для того же языка, но из под WSL. Причем он только недавно научился запускать бинарники. А С++ с CMake под ним я так и не смог заставить работать (со студией, терпеть не могу гнутые компиляторы). А так пользуюсь CLion и VS BuildTools для С/С++ (включая wsl) и Rider для Unreal Engine (у Rider появилась комьюнити версия, то есть бесплатная). Последний UE (5.5) рарзросся прилично и становится все тормознутей и тормознутей.
У меня есть ноут (правда макбук) 12 года с i5-3210m без дискретного видео и с 4гб оперативки. Там использую как IDE родной XCode, пробовал CLion, работает, но не очень шустро, так что не совсем комфортно.

Хотя вообще если автор хочет изучать OPenGL, то непонятно зачем он полез в дебри WinAPI, ведь opengl это кроссплатформа и для него есть так же кроссплатформенные библиотеки для создания окон и обработки ввода, например GLFW
1
9991 / 2963 / 497
Регистрация: 05.10.2013
Сообщений: 8,138
Записей в блоге: 243
18.12.2024, 14:34
Цитата Сообщение от alecss131 Посмотреть сообщение
Тема немного ушла в сторону.
Мне кажется, немножко можно про это написать, потому что для автора темы явно VS уже неактуальна, так как она не подходит для его слабого ноута и всё его свободное место съела. Он исправил ошибку из первого поста, используя TEXT() и _T(), но решение этой проблемы выявило другие проблемы. Например, он написал ранее в сообщении #18, что когда он добавил TEXT(), то вылезло ещё 28 совсем других ошибок:

Цитата Сообщение от Daniil_G Посмотреть сообщение
Да, я пытался использовать TEXT и T, но уже появилось множество совсем других ошибок (их было около 28).
Но, к сожалению, он не написал, какие именно "множество совсем других ошибок" было показано. Скорее всего, это ошибки линковщика типа "неразрешённый символ glClearClear" и т.д., Нужно подключить opengl32.lib в Input, как показал EugeneNN в сообщении #19. Его ответ явно удовлетворяет вопросу в шапке темы, а именно "Код из CodeBlocks не работает в Visual Studio 2022". То есть, вопрос не только в том, чтобы решить одну ошибку из первого сообщения темы, но и решить всю проблему в целом с переносом примера из Code::Blocks в VS. Я отметил его два сообщения, как ответ. Скорее всего, в ближайшее время автор темы не будет использовать VS.

Цитата Сообщение от alecss131 Посмотреть сообщение
И я считаю, что если надо писать с использованием WinAPI то тут без сомнения лучше всего будет родной компилятор MSVC
Те несколько туториалов, которые я смотрел по настройке Code::Blocks были с MinGW. Я не вижу смысла, чтобы новичку в Code::Blocks тратить время на подключение его к MSVC. Я не пробовал подключать MSVC к Code::Blocks, но мне кажется это будет посложнее, чем подключить к нему MinGW - судя по беглому гуглингу. А если новичок берёт VS, то там и выбора нет никакого кроме MSVC - VS не позволяет подключить MinGW. Тут проблема для автора в связи с малым местом на жёстком и со слабым ноутбуком. Я подключал MSVC к Qt Creator. Есть скрипт, который позволяет установить MSVC по минимуму и это займёт 1 GB, в отличает от минимально установки VS Installer - где 7.4 GB. Но я лично помучился с этим вариантом на протяжении, примерно, недели. В итоге MSVC занял 1 GB - примерно так же, как и MinGW-w64 14.2 с сайта: https://winlibs.com/, который занимает 829 MB. Плюс Qt Creator 15 (465 MB) и CMake 3.31.2 (115 MB), то с MSVC это будет 1 GB 580 MB. А если скачать MinGW 11.2 (571 MB), то вместе с Qt Creator 15 и CMake 3.31.2 - это займёт: 571 + 465 + 115 = 1 GB 151 MB. Pазница небольшая - 420 MB. Но сможет ли Daniil_G скачать минимальный MSVC по скрипт. Есть ещё вариант, что можно скачать VSCode, а из него плагин для С++, который, скорее всего, скачивает минимальный MSVC, а потом подключить этот минимальный MSVC к Qt Creator. Я так не пробовал. Мне MinGW нравится из-за своего малого веса и простоты установки. Пока я не встречался с такими проблемами MinGW, котоые есть в нём, но нет в MSVC.

Цитата Сообщение от alecss131 Посмотреть сообщение
Хотя вообще если автор хочет изучать OPenGL, то непонятно зачем он полез в дебри WinAPI, ведь opengl это кроссплатформа и для него есть так же кроссплатформенные библиотеки для создания окон и обработки ввода, например GLFW
Да, это верно. Он себе усложнил изучение. Если ему проще пока временно использовать нешейдерный OpenGL v1, то большинство старых туториалов используют GLUT. Можно было взять актуальный у FreeGLUT вместо GLUT - это почти одно и тоже. В Википедии написано, что стабильная версия FreeGLUT 3.6.0 вышла 12 июня 2024, то есть 5 месяцев назад. Одна из самых знаменитых книг на русском "СуперКнига" по OpenGL v1 в примерах использует GLUT. Лично я бы взял лучше SDL3, потому что я убедился, как легко на нём запустить OpenGL приложение на Android и запустить APK на реальном телефоне, а так же одну и туже кодовую базу примера на OpenGL можно собрать в WASM и сделать управление для Android, тогда одно и тоже приложение будет запускаться в браузере на разных ОС, в том числе на Android и iOS. Я бы ему помог это сделать, если бы он проявил интерес к этому.

Цитата Сообщение от alecss131 Посмотреть сообщение
А С++ с CMake под ним я так и не смог заставить работать
Я тоже когда-то пробовал подружить VSCode с CMake, но у меня не получилось. Кучу туториалов перепробовал. Кучу времени потратил. Но я не сохранил в чём конкретно была проблема и не стал создавать никаких тем, потому что меня истощила эмоционально эта проблема и тогда разозлился на VSCode и просто снёс её. Вы не помните, в чем была причина у вас? Выше EugeneNN написал, что:
Цитата Сообщение от EugeneNN Посмотреть сообщение
подробно на форуме писал Zayats80880 в одной из тем по SFML
Временами я выпадаю и пропускаю много тем. Наверняка вы видели ту самую, где zayats80888 подробно расписал подключение VSCode к CMake. Интересно, а его решение не помогло решить вашу проблему? Или вы не стали пробовать его способ?
1
401 / 36 / 8
Регистрация: 09.01.2019
Сообщений: 148
18.12.2024, 15:26
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Я тоже когда-то пробовал подружить VSCode с CMake, но у меня не получилось. Кучу туториалов перепробовал. Кучу времени потратил
1) взять VS Code с плагином C/C++ Extension Pack, где включены также CMake Tools
2) установить CMake
3) берём любой проект с CMakeLists.txt, открываем его редактором, ПКМ на любом CMakeLists.txt -> Clean and Reconfigure, выбираем компилятор из выпадающего списка, остальное всё на тулбаре (смотрим скрин).
Отлично поддерживается работа с кодом, автокомплит, сборка, отладчики, проверено для msvc, mingw, clang. Полноценно работаю с проектами любого масштаба, в том числе с Qt (сам собираю его с исходников под нужные платформы). Никакие Qt Creator`ы рядом не стояли по скорости работы, проверял и в винде, и в линуксе.

Цитата Сообщение от 8Observer8 Посмотреть сообщение
ноут шумит и когда я вижу, что потребление оперативы в районе 1 GB
Смотрим скрин номер два, ну и не забываем, что обычный браузер столько же сжирает - у меня прямо сейчас открыта опера с тремя вкладками и тоже гигабайт оперативы минус. Мне вполне комфортно было работать с VS Code на стареньком (2012-го года) ноутбуке Lenovo G500, на десятой винде притом, его характеристики можете загуглить. Куда уже слабее ноут-то...
Миниатюры
Код из CodeBlocks не работает в Visual Studio 2022   Код из CodeBlocks не работает в Visual Studio 2022  
2
401 / 36 / 8
Регистрация: 09.01.2019
Сообщений: 148
18.12.2024, 15:27
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Наверняка вы видели ту самую, где zayats80888 подробно расписал подключение VSCode к CMake. Интересно, а его решение не помогло решить вашу проблему? Или вы не стали пробовать его способ?
Как подключить к VS code?
2
9991 / 2963 / 497
Регистрация: 05.10.2013
Сообщений: 8,138
Записей в блоге: 243
18.12.2024, 19:24
Цитата Сообщение от EugeneNN Посмотреть сообщение
взять VS Code с плагином C/C++ Extension Pack, где включены также CMake Tools
Да, получилось запустить CMake проект, в том числе с точками останова. Спасибо! Я раньше скачивал другой плагин - просто "C/C++", без "Extension Pack", то есть без включённого в него "CMake Tools", а "CMake Tools", видимо, скачивал отдельным плагином. VSCode сам предложить подключить MinGW. Вроде бы я раньше пробовать по официальной инструкции. Отладку по шагам я тоже запустил довольно быстро и интуитивно, потому что есть опыт в VSCode, а вот новичку сложнее будет, чем в VS или Qt Creator поставить точки останова. Для точек останова нужно попытаться запустить отладку. Будет предложено создать launch.json и выбрать "Launch" или "Attach" - надо выбирать "Launch". В файле launch.json надо прописать путь к дебагеру и путь к EXE вот так, в моём случае:

JSON
1
2
3
4
5
6
7
{
    "configurations": [
        {
            "name": "(gdb) Launch",
            "program": "${workspaceFolder}/build/app.exe",
            "miDebuggerPath": "C:/Qt/Tools/mingw1120_64/bin/gdb.exe"
}
В VS и Qt Creator нет этих, скорее всего, пугающих новичков всплывающих подсказок и настроечных JSON-файлов. Всё равно Qt Creator мне намного больше нравится - он сам подхватывает при запуске пути к bin в Path для CMake и MinGW. То есть Qt Creator запустил, создал CMake-проект. Ставишь точку останова. Отладка сразу работает, как в Visual Studio.

Цитата Сообщение от EugeneNN Посмотреть сообщение
Смотрим скрин номер два
Да, заметно тише работает. Только перезапускать надо. Без этой опции у меня сразу при запуске VSCode ноут начинал шуметь, а сейчас запускает в тишине, но через секунд 10 начинает шуметь, но заметно тише. Где-то в два раза тише, но всё равно шумит. Эту опцию я нагуглил на Stack Overflow: How can I disable GPU rendering in Visual Studio Code:
  • Нажать сочетание клавиш: Ctrl+Shift+P
  • В появившемся поле поиска выбрать: Preferences: Configure Runtime Arguments
  • В открывшемся файле argv.json начать набирать текст следующей опции и выбрать её:
    JSON
    1
    
    "disable-hardware-acceleration": true,

Я провёл эксперимент несколько раз. Я включал опцию выше. Закрывал VSCode. Ждал секунд 20-30, чтобы ноут полностью успокоился. Запускал VSCode. Через секунд 10 ноут начинал шуметь и продолжал шуметь пока я не закрыл VSCode. И шумит напряжно и неприятно. Как только я закрываю VSCode, то ноут через секунд 20-30 полностью переставал шуметь. Я провёл такой же эксперимент с Qt Creator 15.0.0. С ним ноут шумит, примерно на 80% тише, чем с VS, то есть небольшой шум есть. Шум чуть выше слабого, даже в режиме отладки с точками останова. Возможно это мои загоны, но мне нравится, когда ноут работает очень тихо - почти неслышно. Скорее всего, есть люди, кто вообще не обращают на шум внимания - одевают наушники и слушают музыку. Мне нравится, без наушников, без музыки в тишине, чтобы ноут расслабленно и очень тихо работал. Почти неслышно он работает с Notepad++ и Sublime Text 4 со сборкой проектов из консоли. 99% процентов времени я работаю в ST4 + консоль: "cmake -build ." > "app" - этот редактор кода близок по потребляемым ресурсам на Notepad++, но значительно более удобнее.

Добавлено через 23 минуты
Daniil_G, раз вам VS не подошла по весу и по потребляемым ресурсам, то у вас есть выбор: либо перенести код в VSCode, либо в Qt Creator. Если сразу получится, то отпишитесь в этой теме, что получилось. Если не получится, то можете создать тему, например с названием "Код из CodeBlocks не работает в VSCode". Для выбора, что вам больше понравится, надо работать поочерёдно: в VSCode и в Qt Creator и посмотреть, что вам больше будет нравиться. А может быть вы освободите место на жёстком и продолжите использовать VS 2022, скорость работы вас устроит, а шум вы может не обращаете внимания. Может у вас нет таких загонов по шуму, как у меня.
1
18.12.2024, 19:25

Не по теме:

Любишь кататься - люби и саночки возить
Вся эта возня с IDE, компиляторами и.т.д. неизбежна. Хочет этого программист или нет - эти саночки возить придется. Но все хорошо в меру, чрезмерная любовь к саночкам подозрительна (мягко говоря).

0
401 / 36 / 8
Регистрация: 09.01.2019
Сообщений: 148
18.12.2024, 20:12
Цитата Сообщение от 8Observer8 Посмотреть сообщение
В файле launch.json надо прописать путь к дебагеру и путь к EXE вот так, в моём случае
Не нужно там ничего нигде прописывать, Вы что-то сильно лишнее делаете. Всё работает "из коробки", запустили проект с мейклистами, собрали, поставили бряку в коде, нажали на "жучка" на тулбаре (смотрим скрин, я всё, что нужно, выделил стрелками), всё, отладка пошла. Всякими json-конфигами Вы, конечно, можете развлекаться, но я лично в этом смысла не вижу.
Плюс редактора VS Code в том, что он одновременно позволяет работать с кучей инструментов, например, не только собирать с использованием CMake, но и отлаживать с бряками сами мейклисты (да, CMake Tools это позволяют), тут же в этом проекте запускать (и тоже дебажить) python скрипт, запустить и работать в окружении докер-контейнера, собирая проект для линукс платформы на с++, и много чего ещё, всё ограничено только Вашими потребностями и наличием поддерживаемых плагинов, которые ставятся в два клика, что немаловажно для новичков
2
9991 / 2963 / 497
Регистрация: 05.10.2013
Сообщений: 8,138
Записей в блоге: 243
18.12.2024, 21:31
Цитата Сообщение от EugeneNN Посмотреть сообщение
поставили бряку в коде, нажали на "жучка" на тулбаре (смотрим скрин
А вон она, где спряталась. Да, работает, без указаний путей. Сделали бы они ту же функциональность на большую кнопку отладки на панели слева. Было бы интуитивно понятно. Вот Qt Creator проще, установил среду, запустил, создал проект CMake и сразу есть CMakeLists.txt и main.cpp с "hello, world", поставил breakpoint и тут сразу кнопка с жуком на видном месте. А тут эта интуитивность с большой кнопкой с жуком подвела в VSCode.

Цитата Сообщение от EugeneNN Посмотреть сообщение
Не нужно там ничего нигде прописывать, Вы что-то сильно лишнее делаете.
А я по привычке нажал на кнопку отладки с жуком на панели слева:



Потом нажал синюю кнопку "Run and Debug":



Появился список для выбора отладчика, где я выбрал "С++ (GDB)":



Далее, появился список найденных компиляторов. Здесь он был один, я его выбрал:



Но это тупиковый сценарий, потому что он приводит к ошибке:



Тогда я просто вернулся на панель с синей кнопкой "Run and Debug" и нажал на "create a launch.json file"



Опять выскочило предыдущее предложение по выбору отладчика:



Появился файл launch.json и следующий выбор типа отладчика. Я выбрал "C/C++: (gdb) Launch":



Был сгенерирован файл, где нужно ввести пути к отладчику и к EXE:



Где я вписал свои значения путей:



Теперь есть рабочая кнопка отладки:



Я её нажимаю и точка останова срабатывает:



А оказывается, надо было просто начать эту кнопку:



А кто же знал-то, что это разные кнопки? Обычно такие вещи продублированы, то есть должна быть одна и та же функциональность на этих кнопках. Ну что ж, что есть, то есть. Зато ещё один способ показал. Уверен, большинство нажимает именно эту большую кнопку с жуком на панели слева.

1
9991 / 2963 / 497
Регистрация: 05.10.2013
Сообщений: 8,138
Записей в блоге: 243
18.12.2024, 21:56
EugeneNN, не подскажите, как добавлять пути к библиотекам в VSCode для CMake, чтобы find_package нашёл библиотеку?

Например, в Qt Creator есть табличка, куда добавляются новые переменные и пути для них:



Миниатюра
1
401 / 36 / 8
Регистрация: 09.01.2019
Сообщений: 148
18.12.2024, 22:11
Цитата Сообщение от 8Observer8 Посмотреть сообщение
подскажите, как добавлять пути к библиотекам в VSCode для CMake, чтобы find_package нашёл библиотеку?
1) Создаёте папку, где складываете Ваши собранные либы( external, например, смотрим скрин), библиотеки должны быть собраны и установлены мейком
2) Определяете эту переменную окружения в Вашем дистрибутиве (или в винде)
3) В мейке запрашиваете её через CMAKE_PREFIX_PATH и проверяете её, find_package рекурсивно находит либу
Миниатюры
Код из CodeBlocks не работает в Visual Studio 2022  
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.12.2024, 22:11

Visual Studio 2022 - не работает определение препроцессора в свойствах проекта
Здравствуйте, Подскажите пожалуйста, что я не так делаю ? Есть простейший код: в main вызывается функция в которой есть условие...

Хочу перенести код из CodeBlocks в Visual Studio, но выдаётся ошибка
Помогите переписать код так, чтобы он работал в Visual Studio. Просто до этого я писал программы в CodeBlocks (а она менее чувствительная)...

Код в Visual Studio 2022. Вычисление площади под графиками двумя разными методами
Дано два графика и промежуток 1. Рассчитать точки пересечения заданных функций. 2. Изобразить на координатной плоскости фигуру,...

Расширение для Visual Studio 2022 на фреймворке Visual Studio Community Toolkit
Переписываю свое старое расширение под новую 2022 студию, вот нашел вроде хороший фреймворк:...

Visual Studio 2022 vs DevC++
Всем привет! Не так давно начал изучать С++, и всегда пользовался компилятором DevC++ и проблем никогда не было. Но недавно решил...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru