我有一些MEX代码从DLL调用函数。 DLL有一堆散布在周围的printf语句,可用于调试。但是,我无法在MATLAB命令窗口中看到它们的输出。我做了一些阅读,显然这是因为命令窗口不被视为可以发送printf输出的控制台应用程序。我试过使用这个link's解决方案无济于事。我可以访问DLL的源代码。我正在为Visual Studio 2010中的Windows 7进行编译。我尝试过使用cout并且有效;但是,我不想重写所有使用cout的函数。有什么办法可以将printf的输出重定向到MATLAB的命令窗口吗?
答案 0 :(得分:1)
您需要在之前调用SetStdHandle
加载并初始化其运行时库。您可以附加管道的写入端,并从另一端读取。
运行时库初始化后,它将全局数据与原始stdout句柄绑定,并且可能不会受到将来调用SetStdHandle
的影响。