编译c++project/Open GL时出现纹理错误

编译c++project/Open GL时出现纹理错误,c++,visual-studio-2010,opengl,textures,C++,Visual Studio 2010,Opengl,Textures,我在编译自己制作的程序时遇到了问题 问题是,在Visual C++2010中,我使用的是IDE,当我在调试或发布模式下编译时,在使用OpenGL和纹理时,一切都显示得很好 问题是,当我有我的程序的exe,并试图运行OpenGL窗口是空白的 经过长时间的测试,我意识到,如果我没有加载纹理,所有内容都会正确显示 现在我的问题是,路径是相对的,或者纹理是正确的,exe文件没有正确加载,而纹理是从Visual C++2010编译时正确加载的 不要给出任何错误,以了解问题所在 我什么都试过了。。路径正确,

我在编译自己制作的程序时遇到了问题

问题是,在Visual C++2010中,我使用的是IDE,当我在调试或发布模式下编译时,在使用OpenGL和纹理时,一切都显示得很好

问题是,当我有我的程序的exe,并试图运行OpenGL窗口是空白的

经过长时间的测试,我意识到,如果我没有加载纹理,所有内容都会正确显示

现在我的问题是,路径是相对的,或者纹理是正确的,exe文件没有正确加载,而纹理是从Visual C++2010编译时正确加载的

不要给出任何错误,以了解问题所在


我什么都试过了。。路径正确,纹理存在于exe应该查看的同一目录中。不可能。。。最奇怪的是,在visual c++程序中,exe无法正常工作。

从visual Studio启动应用程序时,应用程序的执行路径是,源代码位于比.sln文件深一个文件夹的位置。 您是否将exe从发布文件夹复制粘贴到纹理所在的文件夹中?如果没有,请尝试这样做。这就是我通常在发布应用程序之前测试它的方式。
另一个原因可能是您的应用程序中有一个bug,可能是指针覆盖了数据、删除了释放的内存或写入了超出数组边界的内容。所有这些都可能导致应用程序在没有调试器的情况下运行时无法工作。原因是,调试模式和发布模式之间的内存布局不同。我经常遇到此类问题。您的应用程序是多线程的吗?如果是,这也可能是失败的原因。

从Visual Studio启动应用程序时,应用程序的执行路径是,源代码位于比.sln文件深一个文件夹的位置。 您是否将exe从发布文件夹复制粘贴到纹理所在的文件夹中?如果没有,请尝试这样做。这就是我通常在发布应用程序之前测试它的方式。
另一个原因可能是您的应用程序中有一个bug,可能是指针覆盖了数据、删除了释放的内存或写入了超出数组边界的内容。所有这些都可能导致应用程序在没有调试器的情况下运行时无法工作。原因是,调试模式和发布模式之间的内存布局不同。我经常遇到此类问题。您的应用程序是多线程的吗?如果是,这也可能是它失败的原因。

您的程序可能无法加载所需的DLL。从VisualStudio运行EXE时,路径中会有额外的信息,Windows在搜索DLL时会使用这些信息。假设OpenGL本身工作正常,我应该问:你的纹理是什么图像格式,你是如何加载的?你能在项目设置中检查工作目录和调试目录吗?Paddy可能是正确的。要进行双重检查,请首先尝试将DLL复制到与exe相同的目录中。如果这不起作用,请查看如何使用GlGetError,这对从GL中获取调试信息非常有帮助。可能是您的程序无法加载所需的DLL。从VisualStudio运行EXE时,路径中会有额外的信息,Windows在搜索DLL时会使用这些信息。假设OpenGL本身工作正常,我应该问:你的纹理是什么图像格式,你是如何加载的?你能在项目设置中检查工作目录和调试目录吗?Paddy可能是正确的。要进行双重检查,请首先尝试将DLL复制到与exe相同的目录中。如果这不起作用,请查看如何使用GlGetError,这对于从GL中获取调试信息非常有帮助。