gpt4 book ai didi

c++ - 在应用程序运行时编译 .dll

转载 作者:搜寻专家 更新时间:2023-10-31 01:13:42 26 4
gpt4 key购买 nike

假设这种情况:应用程序 (app.exe) 使用多个 .dll。我正在调试一个函数,bugged_function() 来自应用程序使用的一个 .dll:util.dll。当我由此调试 bugged_function() 时,我意识到代码中的某些地方是错误的,必须进行更改。

正常执行的步骤:

1.关闭app.exe

2.修改函数中的代码

3.重新编译util.dll

4. 重新运行 app.exe

我想要的:

绕过第 1 步和第 4 步。为此,我需要以某种方式卸载,如果可能的话,util.dll 库以便在编译时可以覆盖它。应用程序必须以某种方式再次重新加载库。

编辑 1:

我不知道 bugged_function() 是如何调用的。假设我只能访问 app.exe 使用的库 util.dll 的源代码。

编辑 2:

我使用的是 Visual Studio 2010,当我调试时,我附加到 app.exe 进程。

最佳答案

如果应用程序通过 run-time dynamic linking 使用 dll ,它可以被卸载(FreeLibrary 或类似),然后重新加载(LoadLibrary 或类似)。

如果应用程序通过 load-time dynamic linking 使用 dll ,我认为你运气不好。

编辑:我稍微误读了这个问题。由于您无法修改 app.exe,因此您必须依赖该应用程序的内置功能来进行运行时加载和卸载(如果有的话)。这完全取决于应用。

关于c++ - 在应用程序运行时编译 .dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12166610/

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