Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.83/29: Рейтинг темы: голосов - 29, средняя оценка - 4.83
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
430 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,627
Записей в блоге: 14

Оконное приложение на Microsoft Visual Studio

18.09.2017, 12:39. Показов 6189. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Предупреждение: прежде чем задавать этот вопрос, я искал в Google долго, так что туда прошу не отсылать.
Я профессионал на Game Maker, продвинутый на Unity, а в C++ пока что полный новичок. Скачал Visual Studio (20.1 ГБ - для меня не шутки, скачивал два месяца!). Пытаюсь создать элементарное приложение.
В Google много читал о консольных приложениях. Но мне нужно именно оконное. При попытке запустить этот код:
C++
1
2
3
4
5
6
#include <iostream>
using namespace std;
 
int main() {
return 1;
}
- возникает ошибка:
MSVCRTD.lib(exe_wwinmain.obj) : error LNK2019: ссылка на неразрешенный внешний символ _wWinMain@16 в функции "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)
C:\***\Project2.exe : fatal error LNK1120: неразрешенных внешних элементов: 1
Сборка проекта "Project2.vcxproj" завершена с ошибкой.
Смена подсистемы в настройках компоновщика в свойствах проекта не помогает.
У меня Visual Studio с русским интерфейсом, так что желательно переводить команды меню и им подобное на русский.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.09.2017, 12:39
Ответы с готовыми решениями:

Как создать оконное приложение в Visual Studio C++
Доброго времени суток. Нужна помощь. Как создать оконное приложение в Visual Studio (не знаю т.к. раньше только в консольном писал код),...

Написать программу. Задания нужно выполнять на языке Visual C++ в среде Microsoft Visual Studio 2008
Можете написать программу? Задание по номером 3.24 (2 рисунок).

Оконное приложение в MS Visual Studio 2010
Доброго времени суток, читатели этого поста. Я хотел бы научиться созданию оконных приложений в MS Visual Studio 2010. Можете пожалуйста...

22
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
18.09.2017, 12:53
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
профессионал на Game Maker
и такое оказывается бывает...

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
ошибка:
система сборки думает, что ваш проект - консольный.
0
 Аватар для noname_club
112 / 103 / 12
Регистрация: 01.05.2013
Сообщений: 603
18.09.2017, 13:54
Я профессионал на Game Maker, продвинутый на Unity, а в C++ пока что полный новичок.
[ OFFTOP ] Взаимоисключающие параграфы. [/ OFFTOP ]
0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
18.09.2017, 14:21
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Я профессионал на Game Maker, продвинутый на Unity, а в C++ пока что полный новичок
пхаха, проще уж сказать, что ничего не умеешь =))
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
18.09.2017, 14:24
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
пхаха, проще уж сказать, что ничего не умеешь =))
он умеет мейкер, юнити, и немножко - кресты.
а чего умеете вы?
0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
18.09.2017, 14:25
hoggy, ничего
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
430 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,627
Записей в блоге: 14
18.09.2017, 14:35  [ТС]
Серьезной помощи не будет?
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
18.09.2017, 14:47
Лучший ответ Сообщение было отмечено Etyuhibosecyu как решение

Решение

Etyuhibosecyu, сперва надо определиться что именно нужно от этого кода:
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
C++
1
2
3
4
5
6
#include <iostream>
using namespace std;
 
int main() {
return 1;
}
Этот код не будет ничего показывать, никаких окон и т.п., даже если бы он успешно собрался.

Ошибка вот эта:
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
error LNK2019: ссылка на неразрешенный внешний символ _wWinMain@16 в функции "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)
Из-за того, что было создано Win32 оконное приложение, но функция main заменена на консольный вариант. В нативных GUI приложениях используется функция WinMain. Вот ее сигнатура:
C++
1
2
3
4
int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine,
                   int nCmdShow);
Предлагаю ознакомиться со ссылкой: https://msdn.microsoft.com/ru-... .100).aspx
2
 Аватар для noname_club
112 / 103 / 12
Регистрация: 01.05.2013
Сообщений: 603
18.09.2017, 14:51
Пытаюсь создать элементарное приложение.
http://www.softtime.ru/cpp_info/petzold.php наверно с winapi надо начать если нужно имеено api окно.
несмотри на год что это 95 windows. в winapi с тех пор тока юникод с UAC добавился, остальное должно работать.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
430 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,627
Записей в блоге: 14
18.09.2017, 15:23  [ТС]
DrOffset
Сделал в точности, как по вашей ссылке (только коментарии и лишние пустые строки убрал), та же самая ошибка.

Добавлено через 3 минуты
Возможно, надо скачать какую-то библиотеку и т. п.? Что вообще такое MSVCRTD.lib? Какие библиотеки нужны для корректной работы оконных приложений?
0
18.09.2017, 15:28

Не по теме:

DrOffset, хз как у тебя хватает терпения на этих...

0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
18.09.2017, 15:36
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Сделал в точности, как по вашей ссылке (только коментарии и лишние пустые строки убрал), та же самая ошибка.
Я бы предложил прикрепить созданный проект в архиве к сообщению на форуме.
Может быть кто-то посмотрит и найдет в чем там ошибка. Заочно нельзя сказать что именно там не так.
Сам я не смогу посмотреть. У меня нет сейчас windows по рукой.
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
18.09.2017, 15:43
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Возможно, надо скачать какую-то библиотеку и т. п.? Что вообще такое MSVCRTD.lib? Какие библиотеки нужны для корректной работы оконных приложений?
Нет, ничего скачивать не надо.
MSVCRTD - это debug-версия библиотеки Visual C RuntTtime, она идет в комплекте и все с ней нормально. Ошибка со ссылкой на нее буквально значит следующее: "Я, библиотека VC runtime, находясь в здравом уме и твердой памяти, не смогла обнаружить функцию _wWinMain@16 в коде пользователя, требуемую для вызова в функции invoke_main." (на самом деле линкер выступает тут ответчиком, а не библиотека, но опустим эту условность для лирического эффекта )

Пока это писал обратил внимание, что ищет она функцию wWinMain, в таком случае надо либо написать wWinMain вместо WinMain, либо отключить юникод в свойствах проекта.
ANSI applications can use the lpCmdLine parameter of the WinMain function to access the command-line string, excluding the program name. Note that lpCmdLine uses the LPSTR data type instead of the LPTSTR data type. This means that WinMain cannot be used by Unicode programs. The GetCommandLineW function can be used to obtain the command line as a Unicode string. Some programming frameworks might provide an alternative entry point that provides a Unicode command line. For example, the Microsoft Visual Studio C++ complier uses the name wWinMain for the Unicode entry point.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
430 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,627
Записей в блоге: 14
18.09.2017, 15:43  [ТС]
Вот папка с проектом.
Вложения
Тип файла: zip Project2.zip (286.7 Кб, 4 просмотров)
0
628 / 392 / 135
Регистрация: 06.03.2017
Сообщений: 1,469
18.09.2017, 15:50
попробуй другой компилятор. У меня тоже что то было с VS. Потом скачал code::blocks.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
430 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,627
Записей в блоге: 14
18.09.2017, 15:51  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
написать wWinMain вместо WinMain
c:\***\source1.cpp(16): error C2731: wWinMain: функция не может быть перегружена
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
18.09.2017, 15:56
Etyuhibosecyu, а какой тип приложения вы выбирали при создании проекта? По идее, созданный с нуля проект должен без проблем компилироваться и запускаться, никакой дополнительный код писать не нужно.
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
18.09.2017, 15:58
Лучший ответ Сообщение было отмечено Etyuhibosecyu как решение

Решение

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
error C2731: wWinMain: функция не может быть перегружена
C++
1
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
LPSTR -> LPTSTR
1
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
430 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,627
Записей в блоге: 14
18.09.2017, 16:03  [ТС]
DrOffset, спасибо, все получилось, вы очень добрый!
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
18.09.2017, 16:10
Etyuhibosecyu, раз мы нашли в чем причина, лучше заменить wWinMain на _tWinMain (больше ничего не надо менять пока), т.к. это пригодится не переделывать больше код, если все-таки придется убрать юникод из проекта.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.09.2017, 16:10
Помогаю со студенческими работами здесь

Visual Studio 2017 Оконное приложение Windows
#include &quot;stdafx.h&quot; #include &quot;test.h&quot; #define MAX_LOADSTRING 100 // Глобальные переменные: HINSTANCE hInst; ...

Как создать оконное приложение в Visual Studio C++
Доброго времени суток. Нужна помощь. Как создать оконное приложение в Visual Studio (не знаю т.к. раньше только в консольном писал код),...

Как создать оконное приложение в Visual Studio 2017 с редактором форм?
Здравствуйте. Мне нужно создать оконное приложение на Visual Sturio C++ 2017 Community, но что я выбрал &quot;Классическое приложение - на...

Отличие между Microsoft Developer Studio и Microsoft Visual Studio?
Здравствуйте, объясните чем отличается Microsoft Developer Studio и Microsoft Visual Studio ?

Разработать в Visual C++ оконное приложение Win32 для работы с процессами
Здравствуйте! Пытаюсь сделать приложение по предоставленным пунктам. Разработать в Visual C++ оконное приложение Win32, которое:...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru