我有一个主应用程序(用C#编写),它解析图像数据库,然后将这些图像通过管道传输到C++ DLL中进行分析。现在出于某种原因,每200张左右的图像,它就会抛出一个错误。它并不总是在同一图像上抛出错误,而只是在随机图像上抛出错误(有时图像通过分析,另一次抛出错误)。
我是否可以通过某种方式使我的DLL向C#图形用户界面抛出一个异常,其中包含有关错误在C++代码中的位置的信息?代码本身应该运行良好,并且我找不到错误的来源,因此我需要来自DLL的一些帮助,以便至少确定错误发生的位置。
任何帮助都将不胜感激,到目前为止我还没有在这方面找到任何东西。
发布于 2013-04-05 05:28:53
只需使用调试器进行诊断即可。使用Project + Properties启用非托管调试器,在Debug选项卡中,勾选"Enable code code Debug“选项。
“它抛出一个错误”太模糊了,无法给出具体的建议。但是您需要在Debug +Exception对话框中选中抛出的复选框。勾选"C++ exception“和/或"Win32 exception",这取决于抛出的异常类型。如果你不知道,那么把它们全部勾选出来。
发布于 2013-04-05 05:28:04
如果您在调试时无法获得错误,请在C++ dll中写入以输出您所在的函数。
例如,如果dll中有func1、func2、func3,则每次进入和退出每个函数时都会写出它们的名称。当您运行程序时,您将能够将其缩小到导致异常的函数,然后您可以在函数中的每一行之后添加类似的输出,以查找引发异常的代码。
https://stackoverflow.com/questions/15821536
复制相似问题