Как создать приложение Windows в C ++, показывая только TaskDialog - PullRequest
1 голос
/ 31 января 2012

Мне нужно создать приложение Windows на C ++, и оно должно показывать только TaskDialog (см. http://msdn.microsoft.com/en-us/library/windows/desktop/bb760540(v=vs.85).aspx). TaskDialog должен отображать текст, переданный в качестве параметра в командную строку.

Я могу создать «Консольное приложение Win32» и вызвать TaskDialog, но тогда я увижу черные окна консоли.

Я могу создать «Приложение Windows» и просто вызвать TaskDialog внутри WinMain, есть ли проблемы с этим решением?

Есть еще идеи?

Ответы [ 2 ]

5 голосов
/ 31 января 2012

Я могу создать «Приложение Windows» и просто вызвать TaskDialog из WinMain, есть ли проблемы с этим решением?

То есть способ реализовать такое приложение. Там нет проблем со всем этим. Конечно, вы не создаете окно явно в своем коде и не запускаете цикл сообщений. Просто позвоните TaskDialog.

Суть в том, что вам не нужно консольное приложение, потому что, как вы обнаружили, окно консоли показывается по умолчанию. Существует две основные подсистемы: консольная подсистема и подсистема GUI. Последний несколько запутанно назван. Вы не обязаны показывать GUI в приложении подсистемы GUI. Вам решать, решите вы или нет. На самом деле выбор сводится к тому, хотите ли вы консоль или нет. Таким образом, подсистемы могут быть лучше названы как консольные, а не консольные!

1 голос
/ 31 января 2012

Вы должны создать пустое приложение Windows.

Точка входа приложения Windows называется WinMain и выглядит следующим образом:

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
    //Place your code here
}

Это означает, что ваше решение верное. Вам просто нужно убедиться, что ваше приложение использует 6-ю версию Comctl32.dll. В противном случае TaskDialog завершится ошибкой.

...