【发布时间】:2012-12-03 20:46:46
【问题描述】:
我正在尝试在 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,所以我无法获得更多信息。
【问题讨论】:
-
使用 Dependency Walker 找出您的 DLL 导出的真正名称。