在C ++应用程序的succssesive调用之间保留dll中的状态

时间:2012-01-09 18:14:10

标签: c++ dll state

我在我的应用程序中明确使用DLL,是否可以在连续调用它之间保留该DLL中的状态?到目前为止,我尝试使用全局的尝试都失败了。

我是否必须使用隐式链接才能生效?

1 个答案:

答案 0 :(得分:1)

链接的类型不应该对此有任何影响。它只定义DLL加载的时间以及是否需要实际启动程序。例如。通过运行时加载,您可以加载编译时不存在的DLL(例如插件),并且您可以自己处理缺少的依赖项。使用编译时链接,您只会收到Windows错误,告诉您缺少DLL。

至于卸载,你没有直接控制你的DLL将留在内存中,所以它可能在两个不同程序使用之间被卸载。另外,你实际上认为“连续呼叫”是什么?来自同一节目的两个电话?在两次不同的执行过程中,同一个程序发出两次调用?两个程序同时运行?根据具体情况,您可能需要一些共享内存(或磁盘空间)来实际传递数据。

如果您已准备好卸载,可以查看DllCanUnloadNow告诉Windows,但根据您的使用情况,这可能是错误的工具。