gpt4 book ai didi

c++ - 制作替换系统库中的函数调用的 DLL 的问题

转载 作者:可可西里 更新时间:2023-11-01 11:08:45 27 4
gpt4 key购买 nike

我试图在 Windows 上制作一个伪造的 opengl32.dll 来捕获 OpenGL 调用。当我将 DLL 放在与简单 OpenGL 应用程序相同的目录中并运行时,出现此错误:

The procedure entry point glMap1f could not be located in the dynamic link library OPENGL32.dll

这很奇怪,因为我的代码中有一个虚拟函数用于每个 OpenGL 调用,包括这个调用。在我的头文件中,我有:

void __declspec(dllexport) glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);

在源文件中:

void  glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points){}

而且我很确定编译器没有优化它,因为在文本编辑器中查看 DLL,我可以找到文本“glMap1f”。

这可能是什么原因造成的?此外,我不太确定如何让 visual studio 调试覆盖实际系统 DLL 的 DLL,因此我无法获得更多信息。

最佳答案

您可能需要在 glMap1f 声明前使用 extern "C" 以防止编译器对其使用名称修改。

关于c++ - 制作替换系统库中的函数调用的 DLL 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13691404/

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