Visual Studio 2012 cout没有显示但是cerr

时间:2015-01-14 10:44:09

标签: c++ visual-studio-2010 cout

我将IDE从 VS 2008 切换到 VS 2010 。现在我用cout获得了一些奇怪的行为。

我的解决方案包括一个exe和几个链接到的dll。

当我在exe项目中调用std::cout时,控制台窗口和std::cerr上都会显示everthing。

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

这个问题并没有出现在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

1 个答案:

答案 0 :(得分:0)

好的,drescherjm是对的。

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

当我做以下事情时:

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

它产生了以下输出:

diff =

在该行代码之后,不再生成输出。所以在OpenCV代码中发生了一些事情。链接到正确的版本后(遗憾的是之前没有错误/警告),一切都很好。

感谢您的帮助!