dll热更新

这里我只讲dll热更新的实现及使用场景。

场景适合访访问量不高的情况;使用LoadLibrary加载方式进行动态库加载。

在程序内加入dll调用计数及线程锁暂停调用业务逻辑,库不要封装的太大,不利于传输和覆盖。

1程序启动时初始化数据时就要加载dll到内存。频繁加载卸载影响程序运行速度。

2调用dll替换业务接口执行暂停,直到之前调用计数为0执行CloseLibrary卸载;执行替换业务。

3替换后从新进行LoadLibrary,并解锁暂停调用,继续正常业务。

计数和锁放在上下文类,也就是最高级别类文件内。

动态库加载卸载代码

你可能感兴趣的:(方案,dll热更新)