我正在为一些巨大的非托管库工作。几乎每个函数都可以在内部调用一些错误处理程序。默认错误处理程序将错误写入控制台并调用abort()函数。这种行为对于托管库是不可取的,所以我想用我自己的默认错误处理程序替换它,这只会抛出一些异常,让程序在处理这个异常后继续正常执行。在调用任何包装函数之前,必须更改错误处理程序 包装器库是用托管c ++编写的,带有静态链接到包装库,因此不存在类似“带有数百个dll导入的类型”的情况。我也找不到包装器库中所有东西使用的单一类型。所以我无法通过在一个单一类型中定义静态构造函数来解决这个问题,它将执行我需要的代码。
我目前看到两种解决问题的方法:
答案 0 :(得分:1)
其他一些建议:
答案 1 :(得分:0)
我认为你的选择2更好。如果你将呼叫包括在一些额外的类型中,那就这样吧。当然,如果已经调用了Library.initialize,你将会被淘汰。
答案 2 :(得分:0)
可能有点延伸,但您可以创建自己的包装类,只显示您想要的功能。在每个函数中,您都可以执行错误处理。