2010-12-11 3 views
3

明らかに実行されません。コードは提供されたソースから直接コピーされます。私は図書館とヘッダーをどこに置いたのですか?それを実行すると、何らかのクラッシュが発生します。OpenGL Superbible最初のプログラムがクラッシュする

私はいくつかの人にそれを実行するように頼んだが、彼らは.dllが見つからないというエラーを出し、プログラムを実行しようとせず、全く何も起こっていない。

ダイアログ "のx.exeは動作を停止しました" から:私はいくつかを尋ね

#include <GLTools.h> 
#include <GLShaderManager.h> 

#ifdef __APPLE__ 
#include <glut/glut.h> 
#else 
#define FREEGLUT_STATIC 
#include <GL/glut.h> 
#endif 

GLBatch triangleBatch; 
GLShaderManager shaderManager; 


/////////////////////////////////////////////////////////////////////////////// 
// Window has changed size, or has just been created. In either case, we need 
// to use the window dimensions to set the viewport and the projection matrix. 
void ChangeSize(int w, int h) 
{ 
    glViewport(0,0,w,h); 
} 

/////////////////////////////////////////////////////////////////////////////// 
// This function does any needed initialization on the rendering context. 
// This is the first opportunity to do any OpenGL related tasks. 
void SetupRC() 
{ 
    glClearColor(0.0f,0.0f,1.0f,1.0f); 

    shaderManager.InitializeStockShaders(); 

    GLfloat vVerts[]= { 
     -0.5f, 0.0f, 0.0f, 
     0.5f, 0.0f, 0.0f, 
     0.0f, 0.5f, 0.0f }; 

    triangleBatch.Begin(GL_TRIANGLES, 3); 
    triangleBatch.CopyVertexData3f(vVerts); 
    triangleBatch.End(); 
} 

/////////////////////////////////////////////////////////////////////////////// 
// Called to draw scene 
void RenderScene(void) 
{ 
    // Clear the window with current clearing color 
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); 

    GLfloat vRed[] = {1.0f, 0.0f, 0.0f, 1.0f}; 
    shaderManager.UseStockShader(GLT_SHADER_IDENTITY, vRed); 
    triangleBatch.Draw(); 
    glutSwapBuffers(); 
} 

/////////////////////////////////////////////////////////////////////////////// 
// Main entry point for GLUT based programs 
int main(int argc, char* argv[]) 
{ 
    gltSetWorkingDirectory(argv[0]); 

    glutInit(&argc, argv); 
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH | GLUT_STENCIL); 
    glutInitWindowSize(800,600); 
    glutCreateWindow("Triangle"); 
    glutReshapeFunc(ChangeSize); 
    glutDisplayFunc(RenderScene); 

    GLenum err = glewInit(); 
    if (GLEW_OK != err) { 
     fprintf(stderr, "GLEW ERROR: %s\n", glewGetErrorString(err)); 
     return 1; 
    } 

    SetupRC(); 
    glutMainLoop(); 
    return 0; 
} 

:質問に

1>------ Rebuild All started: Project: OpenGLtutorialCh2, Configuration: Debug Win32 ------ 
1> triangle.cpp 
1>LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library 
1>gltools.lib(GLBatch.obj) : warning LNK4099: PDB 'vc90.pdb' was not found with 'gltools.lib(GLBatch.obj)' or at 'C:\Users\Bacu\documents\visual studio 2010\Projects\OpenGLtutorialCh2\Debug\vc90.pdb'; linking object as if no debug info 
1>gltools.lib(glew.obj) : warning LNK4099: PDB 'vc90.pdb' was not found with 'gltools.lib(glew.obj)' or at 'C:\Users\Bacu\documents\visual studio 2010\Projects\OpenGLtutorialCh2\Debug\vc90.pdb'; linking object as if no debug info 
1>gltools.lib(GLShaderManager.obj) : warning LNK4099: PDB 'vc90.pdb' was not found with 'gltools.lib(GLShaderManager.obj)' or at 'C:\Users\Bacu\documents\visual studio 2010\Projects\OpenGLtutorialCh2\Debug\vc90.pdb'; linking object as if no debug info 
1>gltools.lib(GLTools.obj) : warning LNK4099: PDB 'vc90.pdb' was not found with 'gltools.lib(GLTools.obj)' or at 'C:\Users\Bacu\documents\visual studio 2010\Projects\OpenGLtutorialCh2\Debug\vc90.pdb'; linking object as if no debug info 
1>gltools.lib(GLTriangleBatch.obj) : warning LNK4099: PDB 'vc90.pdb' was not found with 'gltools.lib(GLTriangleBatch.obj)' or at 'C:\Users\Bacu\documents\visual studio 2010\Projects\OpenGLtutorialCh2\Debug\vc90.pdb'; linking object as if no debug info 
1>LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library 
1>gltools.lib(GLBatch.obj) : warning LNK4099: PDB 'vc90.pdb' was not found with 'gltools.lib(GLBatch.obj)' or at 'C:\Users\Bacu\documents\visual studio 2010\Projects\OpenGLtutorialCh2\Debug\vc90.pdb'; linking object as if no debug info 
1>gltools.lib(glew.obj) : warning LNK4099: PDB 'vc90.pdb' was not found with 'gltools.lib(glew.obj)' or at 'C:\Users\Bacu\documents\visual studio 2010\Projects\OpenGLtutorialCh2\Debug\vc90.pdb'; linking object as if no debug info 
1>gltools.lib(GLShaderManager.obj) : warning LNK4099: PDB 'vc90.pdb' was not found with 'gltools.lib(GLShaderManager.obj)' or at 'C:\Users\Bacu\documents\visual studio 2010\Projects\OpenGLtutorialCh2\Debug\vc90.pdb'; linking object as if no debug info 
1>gltools.lib(GLTools.obj) : warning LNK4099: PDB 'vc90.pdb' was not found with 'gltools.lib(GLTools.obj)' or at 'C:\Users\Bacu\documents\visual studio 2010\Projects\OpenGLtutorialCh2\Debug\vc90.pdb'; linking object as if no debug info 
1>gltools.lib(GLTriangleBatch.obj) : warning LNK4099: PDB 'vc90.pdb' was not found with 'gltools.lib(GLTriangleBatch.obj)' or at 'C:\Users\Bacu\documents\visual studio 2010\Projects\OpenGLtutorialCh2\Debug\vc90.pdb'; linking object as if no debug info 
1> OpenGLtutorialCh2.vcxproj -> C:\Users\Bacu\documents\visual studio 2010\Projects\OpenGLtutorialCh2\Debug\OpenGLtutorialCh2.exe 
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ========== 

コード:

Problem signature: 
    Problem Event Name: BEX 
    Application Name: OpenGLtutorialCh2.exe 
    Application Version: 0.0.0.0 
    Application Timestamp: 4d02d634 
    Fault Module Name: StackHash_0a9e 
    Fault Module Version: 0.0.0.0 
    Fault Module Timestamp: 00000000 
    Exception Offset: 00000000 
    Exception Code: c0000005 
    Exception Data: 00000008 
    OS Version: 6.1.7600.2.0.0.256.48 
    Locale ID: 1033 
    Additional Information 1: 0a9e 
    Additional Information 2: 0a9e372d3b4ad19135b953a78882e789 
    Additional Information 3: 0a9e 
    Additional Information 4: 0a9e372d3b4ad19135b953a78882e789 

ビルド人々はそれを実行するために、彼らはすべてそれが彼らに.dllが見つからないというエラーが表示され、プログラムを実行しようとせず、私に起こっていることとはまったく異なります。

+0

「a sort of crash」と表示されますか?しかし、クラッシュについての情報を私たちに与える必要はないと感じましたか? ;) – jalf

+0

私は例外スタックトレースと他の有用な情報に関する情報を私たちに与えることができない理由は分かりません。なぜデバッグを開始しないのですか? – Luca

+0

@luca私はこのことについて何も知らないので。さらに、このコードは本書で提供されているソースから直接コピーされています。 – Bacu

答えて

0

私はこれを悪いドライバーまでチョークします。

4

は実際に、あなたは、アプリケーションが実際にコンパイルされたことを示して提供情報:

========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ========== 

メッセージの残りの部分はただの警告でした。あなたのコードで本当に混乱し

+0

私はそれを実行すると、コンソールが表示され、ウィンドウが表示されます。窓はすべて白で、決して応答しない。 – Bacu

+0

@BacuどのOSをお使いですか? – karlphillip

+0

Windows 7 32bit – Bacu

0

- GLUTと一つのプロジェクトでWGL ...私のUbuntuのラップトップとWin7x64のデスクトップに完全に働いたこれらの例http://www.lighthouse3d.com/opengl/glut/ に示すように、単に供給過剰を使用してみてください。

+0

私はちょうど本が私に言うことをする。私はこのことについてジャックを知らない。 – Bacu

1

LNK4098警告があなたのランタイム設定をしなければならない - ほとんどの場合、私はあなたのプロジェクトのプロパティに入るとから構成プロパティ> C/C++>コード生成>ランタイムライブラリを変更することで、それらを鎮圧できると信じてマルチスレッドデバッグDLLマルチスレッドデバッグ。警告が言うように.PDBファイルは、存在しないので、(デバッグ構成について。リリースの設定がマルチスレッドマルチスレッドDLLから変更します。)

LNK4099警告が発生します。ソースからライブラリを再コンパイルすることによって.pdbファイルを生成することができます。各設定(DebugまたはRelease)に適切なバージョンをコンパイルし、DebugビルドをDebugビルドから除外する(逆もまた同様)。

これらの警告はすべて致命的ではありません。私は、警告が私のエラーリストを詰まらせないようにするのが好きですが、プロジェクトは存在するときにコンパイルする必要があります。

関連する問題