2013-08-05 4 views
4

У меня есть рабочий проект Visual Studio, который использует wmain() в качестве точки входа. Вместо этого я хотел бы использовать main().Какую опцию я использую main() вместо wmain()

Если я просто изменить функцию подписи int main(), я получаю:

ошибка LNK2019: неразрешенный внешний символ _wmain ссылки в функции "недействительным __cdecl mainCRTStartupHelper (структура HINSTANCE__ *, беззнаковое короткое сопзЬ *)"

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

+0

Проект> Свойства> Общие> Набор символов –

+1

@IgorTandetnik: Это звучало многообещающе. Я нашел его в разделе «Свойства конфигурации»> «Общие»> «Набор символов». Существует три варианта: «Не задано», «Использовать набор символов Юникода» и «Использовать многобайтовый набор символов». Ни один из них, похоже, не работает. – nobar

+2

На самом деле, я не могу воспроизвести проблему. Я только что создал совершенно новый проект Win32 Console. Я могу свободно переключаться между «main», «wmain» и «_tmain», не касаясь настроек проекта, и проект строит отлично. Как очень длинный снимок, есть ли у вас что-нибудь в Linker> Advanced> Entry Point? –

ответ

0

Я нашел решение, угадывая.

Configuration Properties > Linker > Advanced > Entry Point

был: mainWCRTStartup

Сейчас: mainCRTStartup ## удален W

Сложение удалось.

+0

Невозможно использовать в проекте, который использует библиотеки. – kovarex

0

Вставьте этот pragma в исходный файл, перед int main().

#pragma комментарий (линкер "/ SUBSYSTEM: CONSOLE/ENTRY: mainCRTStartup")

В конфигурации Visual Studio проекта, изменить Набор символов в Use Multi-Byte Character Set.

+0

Это решение не работает. '/ ENTRY: mainwCRTStartup' не совместим с переключателем '/ ENTRY: mainCRTStartup'; игнорируются – kovarex

Смежные вопросы