c++ - Visual C++ - 覆盖从 DLL 导入的函数?

标签 c++ windows visual-c++ dll c++11

我正在尝试覆盖 kernel32.dll 中的特定函数。是否有可能在静态库中重新定义该函数并强制可执行文件使用静态库中的函数?我想不同的链接可能会成为一个问题。

可以用我自己的自定义 DLL 覆盖它。然而问题在于 DLL 本身需要链接到 kernel32.dll,所以它忽略了我对该函数的定义。

编辑:我让它与我自己的 DLL 一起工作。构建它时,需要禁用链接时间代码生成。静态链接被覆盖的函数怎么样?

最佳答案

是的,这不是什么大问题。函数被定义为 __dllimport,但没有指定它们是从哪个 DLL 导入的。链接器简单地选择第一个提供它们的导入库。所以,。先通过你的图书馆。在 MSVC 中,您需要禁用“包含标准库”,因为它们先于自定义库。

关于c++ - Visual C++ - 覆盖从 DLL 导入的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9566468/

相关文章:

c++ - 在 C++ 中附加到另一个进程

c++ - boost::fusion 访问关键类型的 union View 作为 map

c++ - 在库 Arduino 中传递数组

c++ - SDL2 : LNK1561: entry point must be defined

c++ - 对于看起来非常好的 C++ 代码,VC++ 中的错误?

c++ - 如何在 Qt 中创建自定义车轮事件?

c++ - C++中的前向声明错误

python - 在 Python 上模拟键盘和鼠标的最简单方法是什么?

windows - Cmd Prompt 和 Ubuntu Terminal 一样吗?

visual-c++ - 使用 SQLite 时出现大量内存泄漏