Main в консольном приложении MFC (НЕ WinMain, main) - PullRequest
1 голос
/ 21 июля 2011

Для примера программы, хотя это все хорошо для меня.Но мне было интересно, как это происходит.

Я создал консольное приложение с включенным флажком «MFC» при создании проекта (VC2008).Он создал стандартную _tmain реализацию с AfxWinInit вызовами и все.Затем я написал свою пользовательскую функцию Main и вызвал ее из _tmain.

Теперь, как только вы нажмете F10 или F11, чтобы начать отладку, она перейдет в Main, а не_tmain (да, через самого _tmain) - как и почему - вот в чем вопрос.

Нет. Я вообще не устанавливал настройки проекта.это примерно 32-битная сборка отладки.

РЕДАКТИРОВАТЬ: Интересно то, что это:

#include "stdafx.h"

void Main()
{
    printf("This is custom main");
}

int _tmain(int argc, _TCHAR* argv[])
{
    if(false) // Getting fooled, or fooling us?
        Main();

    return 0;
}

Visual Studio рассматривает Main в качестве точки входа и ничего не делает, когда яначать отладку с помощью F10 / F11 - поскольку false имеет значение false и не позволяет вызывать Main!

1 Ответ

1 голос
/ 21 июля 2011

Мой тест показывает, что сначала он идет до _tmain, а затем до пользовательского Main.

enter image description here

...