我正在将第三方基于C的SDK集成到我的.NET应用程序中.该应用程序将作为服务器上的Windows服务运行,因此它不应以任何方式与用户交互.
不幸的是,在某些错误情况下,它坚持调用MessageBoxA,可能是为了报告发生了一些不好的事情.发生这种情况时,服务停止响应.我猜它正等着有人按Ok?
供应商无法为我更改代码.
有没有办法让这个调用成为无操作,所以我的代码可以自动处理这种情况?
编辑:可能很重要的是,在我的特定情况下,如果服务崩溃,服务将自动重启.对于在我的情况下显示MessageBox的情况,优雅(尽可能)和突然退出可能是最佳解决方案.
Han*_*ant 10
查看Microsoft Research的Detours.它允许您绕过任意Windows API函数.需要C/C++编程才能使其工作.你不需要太多.