Visual Studio 2012 cout 未显示但 cerr

Visual Studio 2012 cout not shown but cerr

我将 IDE 从 VS 2008 切换到 VS 2010。现在 cout.

出现一些奇怪的行为

我的解决方案由一个 exe 和几个链接到的 dll 组成。

当我在 exe 项目中调用 std::cout 时,所有内容都显示在控制台 window 以及 std::cerr.

如果我在 dll 中调用 std::cout,控制台不会打印任何内容。如果我用 std::cerr 调用相同的内容,输出将显示在控制台上 window.

这个问题没有出现在 VS 2008 中。有人见过这样的问题吗?

更新: 我尝试了以下方法:

std::cerr << "Hello World!" << std::endl; std::printf("Hello World!2\n"); std::clog << "Hello World!3" << std::endl; std::cout << "Hello World!4" << std::endl;

输出如下: Hello World! Hello World!2 Hello World!3

好的,drescherjm 是对的。

我仍然链接到 VS9 版本的第 3 方库 (OpenCV 2.4.2)。这导致了问题。

当我执行以下操作时:

std::clog << "diff = " << cv::Mat(diff) << std::endl;

结果如下:

diff =

在那行代码之后,没有产生更多的输出。所以在 OpenCV 代码中发生了一些事情。链接到正确的版本后(不幸的是之前没有errors/warnings),一切又好了。

感谢您的帮助!