[英]Running a console app silently (suppress the console window from appearing)
[英]Random pixels appearing in console window
我正在編寫一個C Windows控制台應用程序,屏幕上有時會出現奇怪的像素。
更具體地說,應用程序在屏幕上寫入和刪除不同顏色的字符,有時它似乎無法完全刪除它們,而是留下一個像素。
我專門用來打印的功能是:
STATIC
STATUS
PositionPrint(
__in COORD tPosition,
__in WORD wColorAttributes,
__in TCHAR cChar
)
{
SNOWFLAKE__STATUS eRetval = STATUS_INVALID;
BOOL bConsoleRetval = FALSE;
bConsoleRetval = SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), tPosition);
RETVAL_CHECK(
bConsoleRetval,
STATUS_SET_CONSOLE_CURSOR_POSITION_FAILED,
"SetConsoleCursorPosition failed"
);
bConsoleRetval = SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wColorAttributes);
RETVAL_CHECK(
bConsoleRetval,
STATUS_SET_CONSOLE_TEXT_ATTRIBUTES_FAILED,
"SetConsoleTextAttribute failed"
);
_tcprintf(_T("%c"), cChar);
lblCleanup:
return eRetval;
}
RETVAL_CHECK宏(以防萬一):
#ifdef _DEBUG
#define DEBUG_PRINT(message) (printf("%s %d %s %d %s\n", __FILE__, __LINE__, __FUNCTION__, GetLastError(), (message)))
#else
#define DEBUG_PRINT(message)
#endif
#define RETVAL_CHECK(_condition, _error, _message) \
do \
{ \
if (!(_condition)) \
{ \
eRetval = (_error); \
DEBUG_PRINT(_message); \
goto lblCleanup; \
} \
} while (0,0)
要刪除字符,我只需在同一位置打印一個空格。
我的電腦上有Windows 10。
有沒有人知道導致問題的原因或解決方法?
我認為這只是我的字體問題。
我將默認的CMD字體設置為Courier New(希伯來語支持)。
將它改回Lucida Console似乎已經解決了這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.