在来自C++应用程序的成功调用之间保留dll中的状态
Preserve state in dll between succssesive calls from C++ application
我在应用程序中显式使用DLL,是否可以在连续调用该DLL之间保留该DLL的状态?到目前为止,我使用global的尝试都失败了。
我必须使用隐式链接才能工作吗?
链接的类型在这里不应该有任何影响。它只是定义何时加载DLL,以及是否需要它来实际启动程序。例如,通过运行时加载,您可以加载编译时不存在的DLL(例如插件),并且您可以自己处理丢失的依赖项。使用编译时链接,你只会得到一个Windows错误,告诉你缺少一个DLL。
至于卸载,你不能直接控制你的DLL是否会留在内存中,所以它可能是在被两个不同的程序使用之间卸载的。此外,您实际认为的"连续呼叫"是什么?两个来自同一程序的电话?来自同一程序的两个调用发生在两个不同的执行过程中?两个程序同时运行?根据具体情况,您可能需要一些共享内存(或磁盘空间)来实际传递数据。
您可能会查看DllCanUnloadNow来告诉窗口您是否已经准备好卸载,但根据您的用例,这可能是错误的工具。
相关文章:
- C++中std::resize(n)和std::shrink_to_fit之间的区别
- int(c) 和 c-'0' 之间的区别。C++
- 有根的二进制搜索树.保留与其父级的链接
- 在cuda线程之间共享大量常量数据
- 为多个会话保留XPtr
- 在c代码之间共享数据的最佳方式
- Mix_Init和Mix_OpenAudio SDL之间的区别是什么
- C++ 使用 assign 函数的字符串与直接使用 '=' 更改值的字符串之间的区别
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- std::atomic和std::condition_variable wait,notify_*方法之间的区别
- DirectX 9 在重置调用之间保留状态
- memcpy是否可以保留不同类型之间的数据
- 在 win32 中调用WM_PAINT之间保留绘制的工作区
- int 和 float 之间的内容,以保留比 float 更少的内存
- Functor的实例变量在连续调用generate_n之间不保留
- Visual studio 2010-在不同的生成配置之间保留项目属性
- 增加堆栈大小的缺点以及堆栈提交和保留之间的差异
- 如何在 c++ 中保留类之间的多个引用
- 在来自C++应用程序的成功调用之间保留dll中的状态
- Wordwap函数修复保留单词之间的空白