2012-01-09 102 views
0

我明确地在我的应用程序中使用DLL,是否有可能保持连续调用它之间的DLL中的状态?我迄今使用全球的尝试失败了。保存状态在dll之间succivesive调用C++应用程序

我必须使用隐式链接才能正常工作吗?

+1

从同一个应用程序实例连续调用之间应该工作。如果您正在讨论不同的应用程序实例,则需要将该状态写入文件或Windows注册表中。 – 2012-01-09 18:17:35

回答

1

这里的连接类型不应该有任何影响。它只是定义了何时加载DLL以及是否需要真正启动程序。例如。通过运行时加载,您可以加载编译时不在的DLL(例如插件),并且您可以自己处理缺失的依赖关系。有了编译时链接,你只会得到一个Windows错误,告诉你缺少一个DLL。

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

你可以看看DllCanUnloadNow告诉窗口,如果你已经准备好已经卸载,但取决于你的使用情况,这可能是错误的工具。