是否有可能在非托管DLL中引发异常并在托管应用程序中处理它?如何在混合应用程序中执行异常处理? (托管应用程序使用非托管DLL)
我的非托管C++ DLL引发异常在错误的情况下,他们应该是在调用可执行应用处理。
CMyFileException *x = new CMyFileException;
throw(x);
这以前工作,但现在的应用程序是标志不同(/ CLR等)的原因,我们需要使用一些托管代码编译。当抛出异常时,我收到一个System.ExecutionEngineException,这个异常在我的调用exe文件中甚至没有捕获(...)。
我已经看到编译器选项/ clr意味着/ EHa异常处理,但这似乎是我选择的选项,据我了解现在。
会不会有其他任何替代(编译/连接设置)到抛出和捕获异常在模块(DLL/EXE)的边界呢?
感谢您的支持! Marco
终于找到了它 - 一个指向bitshifts位图颜色的指针操作 - 来自'92和16bit时代的MSDN代码示例。 *叹了口气*导致了一个根本没有崩溃应用程序的问题,但是当抛出异常时(甚至抛出;没有参数),一直以来都会造成问题**感谢您的支持!** – marco4net 2010-01-12 10:07:07