【发布时间】:2016-12-22 00:52:37
【问题描述】:
我们有 matlab .m 文件,这些文件已使用 mcc 编译为 DLL。这由我们在 Visual Studio 中调试的 C++ GUI 应用程序使用。当我们调用我们的 matlab 函数时,我们所能做的就是跳过它。我们如何在源代码级别调试 .m 代码?
我认为添加一些“打印”语句会很容易,这些语句在 matlab 中实际上称为“disp”,并在 VS 的输出窗口中观看滚动的内容。但我们什么也看不到。甚至来自 C++ 源代码中的 printf() ,或者直接从命令行而不是在 VS 中运行我们的应用程序时。从 Google 和 S.O. 我们了解到,发送到 stdout 的任何内容都不会出现在任何地方。 (这个问题是相关的:Visual Studio 2012 C++ Standard Output 但对我们没有用。)
我在 .m 脚本中尝试了 msgbox('blah blah'),并重建了 DLL。什么都没出现。我不确定这是否应该工作,但我们的 matlab 代码没有执行,或者 msgbox 在这种情况下不应该工作,比如 stdout。
我们对基于打印的调试很满意。断点和其他技术会很好,但目前不是必需的。
我们在 Win7、Visual Studio 2015 上使用 Matlab R2016b。我们有用于制作 DLL 的 .m 源代码,并且我们有使用 DLL 的 GUI 应用程序的源代码。
【问题讨论】:
标签: c++ windows debugging matlab-compiler