none
在主线程中调用DLL中的函数成功,在子线程调用同一函数却失败 RRS feed

  • 问题

  • 在主线程中调用DLL中的函数成功,在子线程调用同一函数却失败,请高手帮忙解决下,不胜感激。
    我用工作者线程和用户界面线程都试过,解决不了。

    我公司用别公司的DLL库,那公司只告知接口,对调用该特殊说明的没有说明,不知道该如何处理?

    操作系统返回的错误代码是18,对应的文本说明是“无更多文件”。
    不胜感激
    2009年7月14日 7:51

答案

  • 需要DLL的相关文档了。这个DLL用到了其他的COM库,也有可能对线程做了特殊处理。如果是前者你可以在自己的线程中调用CoInitializeEx初始化一下线程模型试试。最好在UI线程里试,以免Apartment列集传递带来的死等问题。
    麻烦把正确答案设为解答。
    • 已标记为答案 Tim Li 2009年7月21日 10:39
    2009年7月15日 0:50
    版主

全部回复

  • 关于别公司的产品问题,联系开发者修正或者用其他产品替代。

    Please mark the post answered your question as the answer, and click the chartreuse pyramid floating over nothingness/null to mark other helpful posts as helpful. This posting is provided "AS IS" with no warranties, and confers no rights.
    Visual C++ MVP
    2009年7月14日 19:55
    版主
  • 需要DLL的相关文档了。这个DLL用到了其他的COM库,也有可能对线程做了特殊处理。如果是前者你可以在自己的线程中调用CoInitializeEx初始化一下线程模型试试。最好在UI线程里试,以免Apartment列集传递带来的死等问题。
    麻烦把正确答案设为解答。
    • 已标记为答案 Tim Li 2009年7月21日 10:39
    2009年7月15日 0:50
    版主