美文网首页
使用OLE出现“因为应用程序正在发送一个输入同步呼叫,所以无法执

使用OLE出现“因为应用程序正在发送一个输入同步呼叫,所以无法执

作者: _AKI_Peroro_ | 来源:发表于2016-08-08 14:07 被阅读0次

    最近碰到一个Bug,在使用OLE导出excel的时候CreateDispatch总是失败。
    调试进去发现在调用CreateDispatch的时候会提示“0x8001010D:因为应用程序正在发送一个输入同步呼叫,所以无法执行传出的呼叫”

    Paste_Image.png

    在微软的官网上找了相关的错误信息

    Paste_Image.png Paste_Image.png

    可以看到这是由于OLE的防死锁机制导致的,根据调用堆栈往回找找果然发现代码中有调用SendMessage。
    把SendMessage换成PostMessage之后问题就不再出现了。

    相关文章

      网友评论

          本文标题:使用OLE出现“因为应用程序正在发送一个输入同步呼叫,所以无法执

          本文链接:https://www.haomeiwen.com/subject/egkrsttx.html