我有一个C ++控制台应用程序,它使用第三方dll(jvm.dll,间接)使用printf打印各种错误消息(Java堆栈跟踪)。我需要将这些堆栈跟踪捕获到一个字符串,以便进一步处理它们,或者至少看到它们打印在控制台上。
问题是我只在调试VisualStudio(VS 2010)中的应用程序时才看到堆栈跟踪。当我以“正常方式”运行我的应用程序时,即从命令行运行我的应用程序时,控制台上没有任何内容。所以VS能够以某种方式干扰java输出并显示它。我需要能够做同样的事情。
我已经尝试过freopen(),但没有成功。另外,我在同一个问题上找到了this question,但没有明确答案。