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),一切又好了。
感谢您的帮助!
我将 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),一切又好了。
感谢您的帮助!