私はこのサイトを初めて使用し、プログラミングは比較的初めてです。Visual Studio 2010 を使用してしばらく C++ プログラミングを行っていましたが、OpenGL を使いたいと思ったので、OpenGL Superbible を購入して始めました。第 2 章の「単純な」プロジェクトで行き詰まってしまいました。何時間もの調査の結果、freeGLUT と GLtools を使用するために必要なすべてのファイルをダウンロードすることができました。プログラムが機能するために、すべてが適切な場所にあることを確認しました。これで、すべてがうまくいったように見えます... 1 つの奇妙な問題を除いて。
freeglut.dll を Windows\System32 に配置する必要があると指示されたので、実行しました。プロジェクトはすぐにビルドされますが、実行すると、次のように表示されます
「コンピュータに freeglut.dll が見つからないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてください。」
さて、freeglut.dll が本来あるべき Windows\System32 にあることは確かですが、何が問題なのですか? どうすれば解決できますか?
本の元のコードは次のとおりです。
#include "../../shared/gltools.h" //OpenGL toolkit
//////////////////////////////////////////////
//called to draw scene
void RenderScene(void)
{
// clear the window with current clearing color
glClear(GL_COLOR_BUFFER_BIT);
//Flush drawing commands
glFlush();
}
////////////////////////////////////////////////////////
//set up the rendering state
void SetupRC(void)
{
glClearColor(0.0f , 0.0f, 1.0f, 1.0f );
}
///////////////////////////////////////////////////////////
//main program entry point
void main(void)
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
glutCreateWindow("Simple");
glutDisplayFunc(RenderScene);
SetupRC();
glutMainLoop();
return 0;
}
これは実際にコンパイルされたが実行されなかったコードです (さまざまなリソースから取得したすべての競合するデータから少し混乱しています)。
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <GLTools.h>
#include <gl/GLUT.h>
//called to draw scene
void RenderScene(void)
{
// clear the window with current clearing color
glClear(GL_COLOR_BUFFER_BIT);
glFlush();
}
//set up the rendering state
void SetupRC(void)
{
glClearColor(0.0f , 0.0f, 1.0f, 1.0f );
}
//void main(void)
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
glutCreateWindow("Simple");
glutDisplayFunc(RenderScene);
SetupRC();
glutMainLoop();
return 0;
}