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

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

18.09.2017, 12:39. Показов 6146. Ответов 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 / 179 / 41
Регистрация: 13.07.2017
Сообщений: 4,563
Записей в блоге: 14
18.09.2017, 14:35  [ТС]
Серьезной помощи не будет?
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
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 / 179 / 41
Регистрация: 13.07.2017
Сообщений: 4,563
Записей в блоге: 14
18.09.2017, 15:23  [ТС]
DrOffset
Сделал в точности, как по вашей ссылке (только коментарии и лишние пустые строки убрал), та же самая ошибка.

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

Не по теме:

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

0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
18.09.2017, 15:36
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Сделал в точности, как по вашей ссылке (только коментарии и лишние пустые строки убрал), та же самая ошибка.
Я бы предложил прикрепить созданный проект в архиве к сообщению на форуме.
Может быть кто-то посмотрит и найдет в чем там ошибка. Заочно нельзя сказать что именно там не так.
Сам я не смогу посмотреть. У меня нет сейчас windows по рукой.
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
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 / 179 / 41
Регистрация: 13.07.2017
Сообщений: 4,563
Записей в блоге: 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 / 179 / 41
Регистрация: 13.07.2017
Сообщений: 4,563
Записей в блоге: 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
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
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 / 179 / 41
Регистрация: 13.07.2017
Сообщений: 4,563
Записей в блоге: 14
18.09.2017, 16:03  [ТС]
DrOffset, спасибо, все получилось, вы очень добрый!
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru