最近碰到一个Bug,在使用OLE导出excel的时候CreateDispatch总是失败。
调试进去发现在调用CreateDispatch的时候会提示“0x8001010D:因为应用程序正在发送一个输入同步呼叫,所以无法执行传出的呼叫”
可以看到这是由于OLE的防死锁机制导致的,根据调用堆栈往回找找果然发现代码中有调用SendMessage。
把SendMessage换成PostMessage之后问题就不再出现了。
最近碰到一个Bug,在使用OLE导出excel的时候CreateDispatch总是失败。
调试进去发现在调用CreateDispatch的时候会提示“0x8001010D:因为应用程序正在发送一个输入同步呼叫,所以无法执行传出的呼叫”
可以看到这是由于OLE的防死锁机制导致的,根据调用堆栈往回找找果然发现代码中有调用SendMessage。
把SendMessage换成PostMessage之后问题就不再出现了。
本文标题:使用OLE出现“因为应用程序正在发送一个输入同步呼叫,所以无法执
本文链接:https://www.haomeiwen.com/subject/egkrsttx.html
网友评论