我有一个插件应用程序,它是一个在(外国)C++ 主机中运行的 C++ DLL。 我想允许插件的在线更新。 我该怎么做?
一种可能的方法是将 DLL 分离为包装器 DLL 和内容 DLL,并且 在每次更新时移动到新的内容 DLL。
有没有更好的方法来实现它?
谢谢
最佳答案
如果您无法控制主机,那么您必须自己进行动态加载/卸载。正如您正确注意到的那样,为此您需要两个 DLL。这可能是最简单的方法,但您需要确保在交换 DLL 时主机不会造成任何伤害。最简单的解决方案可能是加载两个 DLL,然后在卸载旧代码之前在它们之间执行原子切换。
关于c++ - DLL 应用程序的在线更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6583460/