我有两个关于DLL的查询,
1)如果我在运行时加载DLL,我猜DLL会在单独的线程中吗?
2)如果我调用DLL中存在的函数,并且该函数需要很长时间才能返回该值,那么我如何让我的应用程序线程等到DLL的函数返回值。
我如何解决第二个问题
答案 0 :(得分:7)
您的假设不正确。
如果加载DLL,然后调用其中一个函数,则会同步调用,就像任何其他函数调用一样。
绝对没有理由在另一个线程中加载DLL。当然,你可以这样做,但这不是默认的。
答案 1 :(得分:1)
1)不.dll只是代码。 dll中的代码在您创建的任何线程的上下文中调用。 *
2)因此,您的应用程序将等待dll的功能完成。
答案 2 :(得分:1)
您使用的是qt线程吗?否则我无法理解你为什么要使用“qt”标签。
至于你的问题,在我看来你必须创建另一个线程来调用DLL中包含的函数。 当该线程退出时,您可以假设您具有该函数的结果。
答案 3 :(得分:0)
DLL_THREAD_ATTACH
。