Winapi QT和Win32控制台应用程序

Winapi QT和Win32控制台应用程序,winapi,console,qt4,Winapi,Console,Qt4,我有一个Win32控制台应用程序正在显示此行为 1) 使用VC2005CL进行编译和链接,应用程序运行良好。我所说的工作正常的意思是,根据代码页437,128以上的字符可以正确显示 2) 当我使用qtqmake构建一个项目(QT+=console)并将SOURCES=main.c时,构建过程会顺利进行,并且会创建我的main.exe。但是128以上的字符,使用WriteConsoleOut函数显示不同(一些奇怪的字符)。我感觉这与代码页设置不正确有关。我没有调用任何QT函数,也没有创建QAppl

我有一个Win32控制台应用程序正在显示此行为

1) 使用VC2005CL进行编译和链接,应用程序运行良好。我所说的工作正常的意思是,根据代码页437,128以上的字符可以正确显示

2) 当我使用qtqmake构建一个项目(QT+=console)并将SOURCES=main.c时,构建过程会顺利进行,并且会创建我的main.exe。但是128以上的字符,使用WriteConsoleOut函数显示不同(一些奇怪的字符)。我感觉这与代码页设置不正确有关。我没有调用任何QT函数,也没有创建QApplication或QCoreApplication对象。当我创建QApplication对象或QCoreApplication对象时,结果相同(未显示正确的字符)


使用Win32 console和QT是否可以正确显示128以上的字符?

如果是Windows特定的API,我当然不建议使用
WriteConsoleOutput
。Qt提供了一种简单的方法,可以使用以下命令写出字符串:

//设置
文件f;
f、 打开(stdout,QIODevice::WriteOnly);
QTextStream-qout(&f);
//用法

qout我通过使用
writeconolea
函数解决了这个问题。

如何使用QTextStream为要输出的文本添加颜色,并定位光标?@Blaise您应该提出另一个问题jfyi,它被写成Qt,而不是Qt。下次,您还可以对现有答案写评论。但无意冒犯:)
// setup
QFile f;
f.open(stdout, QIODevice::WriteOnly);
QTextStream qout(&f);

// usage
qout << tr("translate this text");