Из ваших комментариев кажется, что tproblem, с которым вы работаете, открывает окно консоли и подключается к stdout
(что мало связано с сборками DEBUG и RELEASE).
Смотрите статью MS поддержки INFO: Calling CRT Output Routines from a GUI Application для рабочего примера того, как иметь программу GUI открыть консоль и прямой stdout
к нему:
#include <stdio.h>
#include <io.h>
#include <fcntl.h>
// ...
int hCrt;
FILE *hf;
AllocConsole();
hCrt = _open_osfhandle(
(long) GetStdHandle(STD_OUTPUT_HANDLE),
_O_TEXT
);
hf = _fdopen(hCrt, "w");
*stdout = *hf;
int i = setvbuf(stdout, NULL, _IONBF, 0);
puts("hello world");
На самом деле, на дальнейших испытаниях, вашу простой методике использования freopen("CONOUT$","w",stdout);
работ слишком. По какой-то причине в моих первоначальных тестах он, похоже, не работал. Возможно, вам понадобится также вызов setvbuf()
, чтобы избежать проблем с буферизацией.
Как это работает? Вы получаете ошибку времени компиляции? Это делает то же самое для выпуска или сборки отладки? Какие? –
Не знаете, почему. Внутри моей DEBUG, что включает, если (AllocConsole()) freopen («CONOUT $», «w», stdout); – user2306421
У меня нет ошибки времени компиляции. Должен ли я устанавливать какие-либо свойства внутри визуального проекта или что-то еще? – user2306421