我将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
答案 0 :(得分:0)
好的,drescherjm是对的。
我仍然链接到VS9版本的第三方库(OpenCV 2.4.2)。这导致了这些问题。
当我做以下事情时:
std::clog << "diff = " << cv::Mat(diff) << std::endl;
它产生了以下输出:
diff =
在该行代码之后,不再生成输出。所以在OpenCV代码中发生了一些事情。链接到正确的版本后(遗憾的是之前没有错误/警告),一切都很好。
感谢您的帮助!