日期:2014-05-17  浏览次数:20909 次

C# 调用C++ Dll中,接口,无返回,程序假死。
RT,大牛们麻烦帮忙看看,这个问题可能是什么原因造成的。

补充,这个接口,在其他地方能够调用成功,并达到接口实现的效果,且也能返回,程序继续运行。

但是在我的调用的地方,竟然没有返回。。这样所在功能就废了。。

对了,调用处是一个在主窗体上show出来的窗体,不知道这个会不会有影响。。

如果有必要,我可贴代码。。。

求帮助解决 
C++ C# winform DLL

------解决方案--------------------
如果这个dll,“在其他地方能够调用成功”,而唯独你说的那个地方不行,基本可以肯定是你的问题了。
PS:你得把代码贴出来让大伙帮你分析分析。
------解决方案--------------------
大概需要两个地方的改动
1.try catch 截获 SEHException异常,大多数c++的异常在c#里表现为这个
2.在main.cs里加入
 AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
            Application.ThreadException += Application_ThreadException;
挂接两个全局性异常处理事件,调用标准dll有时候会出现比较古怪的无异常程序假死或者无异常程序自动关闭现象,挂接这两个全局性异常处理事件就可以处理这种情况了

其他的东西就不说了,等你把异常截获出来,我们在看是啥子问题。