我正在尝试覆盖 kernel32.dll 中的特定函数。是否有可能在静态库中重新定义该函数并强制可执行文件使用静态库中的函数?我想不同的链接可能会成为一个问题。
可以用我自己的自定义 DLL 覆盖它。然而问题在于 DLL 本身需要链接到 kernel32.dll,所以它忽略了我对该函数的定义。
编辑:我让它与我自己的 DLL 一起工作。构建它时,需要禁用链接时间代码生成。静态链接被覆盖的函数怎么样?
最佳答案
是的,这不是什么大问题。函数被定义为 __dllimport
,但没有指定它们是从哪个 DLL 导入的。链接器简单地选择第一个提供它们的导入库。所以,。先通过你的图书馆。在 MSVC 中,您需要禁用“包含标准库”,因为它们先于自定义库。
关于c++ - Visual C++ - 覆盖从 DLL 导入的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9566468/