1

我正在尝试在 Windows 上制作一个假的 opengl32.dll 来捕获 OpenGL 调用。当我将 DLL 与简单的 OpenGL 应用程序放在同一目录中并运行时,我收到此错误:

无法在动态链接库 OPENGL32.dll 中定位程序入口点 glMap1f

这很奇怪,因为对于每个 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,因此我无法获得更多信息。

4

1 回答 1

6

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

于 2012-12-03T20:49:56.567 回答