【发布时间】:2012-05-11 09:51:22
【问题描述】:
如果我使用LoadLibrary 加载一个DLL,该DLL 是否保证保持加载状态?如果没有,如何防止重新加载。
实际情况:我有一个调度程序,根据某些消息,它需要加载几个 dll 中的一个并从中执行一些功能。我无法在编译时链接它们,所以我使用LoadLibrary。因为可能有很多电话,我不想每次都打电话给LoadLibrary,因为事实证明这是一个瓶颈。所以我想每个 DLL 只调用一次,调用GetProcAddress 来获取函数,每个 dll 也只调用一次,并将其缓存在某个地方。但它安全吗?我是否保证在任何后续调用中调用该函数都可以?如果没有,我怎么能有这个保证?
【问题讨论】:
-
您是否考虑过使用延迟加载的 DLL? msdn.microsoft.com/en-us/library/151kt790.aspx
标签: c++ visual-c++ dll loadlibrary dynamic-loading