代码之家  ›  专栏  ›  技术社区  ›  Naruto

如何解决DLL函数调用问题

  •  1
  • Naruto  · 技术社区  · 14 年前

    我有几个关于DLL的查询,

    1) 如果我在运行时加载DLL,我猜DLL会在单独的线程中,对吧?

    我怎样才能解决第二个问题

    4 回复  |  直到 14 年前
        1
  •  7
  •   ereOn    14 年前

    你的假设是错误的。

    如果加载一个DLL,然后调用它的一个函数,则调用是同步的,就像任何其他函数调用一样。

    完全没有理由将DLL加载到另一个线程中。当然,你可以这样做,但这不是默认的。

        2
  •  1
  •   Chris Becke    14 年前

    1) 不。dll只是代码。dll中的代码是在您创建的任何线程的上下文中调用的。*

    2) 因此,应用程序将等待dll函数完成。

    • 由于应用程序调用Dll,Dll可以创建工作线程。但是,你不能 呼叫
        3
  •  1
  •   Emiliano    14 年前

    你在用qt线程吗?否则我不明白你为什么要用“qt”标签。

    至于你的问题,在我看来,你必须创建另一个线程来调用DLL中包含的函数。 当这个线程退出时,你可以假设你有函数的结果。

        4
  •  0
  •   Svisstack    14 年前
    1. 你可以在开关工具里 DLL_THREAD_ATTACH
    2. 必须从要减慢速度的线程调用此函数,或者在调用函数之前挂起线程,然后再继续执行线程。