如何解决在Visual Studio中调试Excel加载项
一如既往,如果以前已经对此表示歉意。
我正在编写一个COM dll(Visual Studio 16.7.1,C ++,ATL),以便与Excel中的VBA一起使用。我可以使用OutputDebugString()函数从我的dll中输出一些重要信息,但是它会丢失于大量来自Excel的调试信息中(异常,加载,卸载等)。
有没有一种方法可以选择不查看从Excel本身生成的调试信息(可能是调试属性中的某些复选框)?我已经使用了AllocConsole()来获得要写入的单独窗口,但这似乎在std :: cout和printf()上都引发了异常。 (我将AllocConsole()放在COM dll的dllmain中……这可能不是正确的位置……)。
我真的不想将调试信息写入文件,因为我想在逐步执行VBA代码时观看调试信息。
提前感谢任何指针。
解决方法
尝试TraceTool-它可以捕获OutputDebugString信息并具有过滤器功能。
另一种方法是使用专用的日志记录库(我发现 spdlog 很好,但我绝对不想参与辩论),然后设置该库以刷新日志文件在每条消息上。 (实际上,您可以只使用C ++流写入文件,然后在每条消息后刷新,但是使用适当的库是更好的长期解决方案)。然后,您只需要查看日志文件的tail
。您可以按照以下说明的各种方式来执行此操作:A Windows equivalent of the Unix tail command甚至使用TraceTool!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。