Почему при точке входа WinMain/wWinMain
не запускается консоль. А при точке входа main
- запускается. Как это работает?
И как компилятор понимает, что WinMain/wWinMain
является точкой входа, если стандартной является main
. Как работать с точкой входа main
без запуска консоли, используя заголовочный файл windows.h?
Ещё хотелось бы спросить, где можно найти про это структурированную информацию (почитать про это, как это работает).
как компилятор понимает что WinMain/wWinMain является точкой входа, если стандартной является main
Стандарт лишь определяет, что компилятор обязан поддерживать использование точки входа с прототипом int main(int argc, char **argv)
. Стандарт не запрещает поддерживать любые другие точки входа. В случае Visual C++, точка входа определяется параметрами компоновщика /SUBSYSTEM и /ENTRY. Когда параметр /SUBSYSTEM имеет значение "WINDOWS", а параметр /ENTRY не определен, точкой входа является функция WinMain.
Как работать с точкой входа main без запуска консоли
Установив параметры компоновщика /ENTRY:"mainCRTStartup" /SUBSYSTEM:WINDOWS
. В диалоговом окне свойств проекта эти параметры расположены в "Linker - Advanced - Entry point" и "Linker - System - Subsystem" соответственно.
Подробное описание принципов выбора точки входа можно прочитать здесь: точка входа в win32 приложении
Понимает не компилятор, а линковщик. Когда он выполняет линковку для той или иного формата файла - консоли, оконного приложения или чего еще - он прилинковывает некий объектный файл с кодом стартапа, который выполняет инициализацию всяких вещей, как-то разбор кормандной строки и всякое другое, а потом, выполнив подготовку среды выполнения, вызывает ту самую "главную" функцию.
Которая может иметь разное имя для разных проектов.
WinMain
- это просто соглашение, ничего мистически-сакрального в этом имени нет.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
имеется данный код, но он выводит не ожидаемый результаткак это исправить?
Мне нужно умножать очень большие числа, сделал это через алгоритм Карацубы, но переменные просто не могут их вместить в себяКак можно преодолеть...
Задается 2 массива a и b, нужно вывести массив имеющий наименьшее кол-во положительных элементовПример: Массив a { 1, 2,3}, массив b { -4, -5, 6} программа...