Я столкнулся с проблемой, связанной с «окном консоли» платформы Windows CE. Чтобы упростить вопрос, я написал этот пример приложения HelloWorld: я написал свой код вот так: сборка, запуск. Поведение действительно запрограммировано. После "двойного щелчка по приложению", если нет ввода / вывода, не вижу "Окно консоли". Через 20 секунд я напечатал helloworld, после чего я увидел консоль. Я исследовал «printf ()» и вижу, что этот API взят из «corecrt.lib», и я не вижу исходный код. Я не знаю, что это нормальное поведение или что-то не так с моим приложением.

Не могли бы вы дать мне какой-нибудь совет? Все будет оценено по достоинству.

//-----------------------------------------------
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
    //After click...there is no window.
    Sleep(20000);

    //20 seconds later ,a window appears.
    printf("HelloWorld!\n");

    return 0;   
}

// ----------------------------------------------

0
Dongguo 28 Апр 2014 в 07:11

2 ответа

Лучший ответ

Это ожидаемое поведение в WinCE.

Если ввод / вывод не требуется, консоль не появится. Это означает, что при двойном щелчке приложение будет работать без вывода сообщений.

Если вам нужно, чтобы появилось окно консоли, вы должны использовать printf / scanf / getchar и т. Д.

4
Keshava GN 29 Апр 2014 в 07:17

В CE нет различия между подсистемой "окна" и "консоль". На рабочем столе они передаются компоновщику, который записывает их в исполняемый файл, чтобы ОС при необходимости могла запустить соответствующее окно консоли. Вместо этого он просто создает окно при первом использовании.

В качестве обходного пути вы можете вывести фиктивный контент, например новую строку, для запуска создания окна консоли. Возможно, AllocConsole() (не уверен в названии) также подойдет, по крайней мере, в вариантах для настольных ПК его можно использовать для создания окна консоли даже для оконных программ.

1
Ulrich Eckhardt 28 Апр 2014 в 20:28