gpt4 book ai didi

c++ - 有什么方法可以将 3rd 方 DLL 中的静态变量重置为其原始值吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:31:36 25 4
gpt4 key购买 nike

我们必须在开发过程中使用第 3 方 DLL,遗憾的是我们无法修改它或指定库必须如何工作。

原始库开发人员通过静态变量在他们的方法中引入了状态机制。

例如:

void foo()
{
static int a = 1;
if (a == 1)
{
/* some init logic */
a = 2;
}
}

有时我们需要将库恢复到原始状态。

有没有什么方法可以将静态变量重置为其原始值而无需任何系统“黑客攻击”?

我们目前的解决方案是 FreeLibrary/LoadLibrary,但我们想避免它。

最佳答案

您当前的解决方案是最干净的解决方案。

唯一的选择是找出变量在 DLL 中的存储位置并直接修改它。但这是一个非常脆弱的粗暴黑客。例如,如果第 3 方 DLL 发生更改,那么您的黑客可能会停止工作并产生不可预知的影响。

关于c++ - 有什么方法可以将 3rd 方 DLL 中的静态变量重置为其原始值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7839713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com