It appears that not all glut32.dll’s in the NVIDIA SDK are created equal. Strange thing is that glut32.dll in NVIDIA GPU Computing SDK 3.2\C\common\bin is compiled for 32 bit while the glut32.dll in \NVIDIA GPU Computing SDK 3.2\C\bin\win64\Release is x64, but one would find… if they looked that there exist 64 bit libs in the NVIDIA GPU Computing SDK 3.2\C\common\bin directory possibly giving the impression that this directory could be added to the path to allow a application to be linked. Depwalker shows this not to be the case as glut32.dll in \NVIDIA GPU Computing SDK 3.2\C\bin\win64\Release has compile flag x64 while glut32.dll in NVIDIA GPU Computing SDK 3.2\C\common\bin has compile flag x84.
What happens if you compile a x64 app using glut32.dll set to the x86 compiled path… you get the 0x000007b application unable to start correctly error.
What is also interesting are these lines in glut.h
#pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */ #pragma comment (lib, "opengl32.lib") /* link with Microsoft OpenGL lib */ #pragma comment (lib, "glu32.lib") /* link with OpenGL Utility lib */ #pragma message("Note: including lib: glut32.lib\n") #pragma comment (lib, "glut32.lib") /* link with Win32 GLUT lib */
Why does a x64 bit app link to and require a 64 bit compiled version of a 32 bit lib?
Why does the glut.h have hard coded this linking?
Why do I continually try to apply logic to illogical software development process? (I am sure what may follow this post is some jive talk about how things are this way because _____ fill in the blank and some people (sheep) may end up believing that it should be this way through some derailed logic train of thought)
This is what I like to call “all kinds of awesome”. Can the NVIDIA developers make development for the GPUs any more confusing. From experience I am sure the answer to this question is an affirmative YES!!!
How about we take the glut32 bit goop and compile it in to a glut64.lib (which already exists) and remove the hard coded lines from the header file? Crazy talk!! … Crazy talk!! … I know. I declare shenanigans!