Windows8+OpenGLで未処理の例外エラー

このQ&Aのポイント
  • Windows8 Pro のマシンで OpenGL を使うため、glut をインストールし、簡単なサンプルをコンパイルして実行したところ、 「ユーザーコールバック中に未処理の例外エラーが発生しました」というエラーを吐いて止まってしまいました。
  • glut は様々なサイトで紹介されている方法通りに、公式ページにて必要なファイル (32bit版) をダウンロードし、glut.h を C:\Program Files (x86)\Microsoft Visual Stdio 10.0\VC\include\GL\ に、glut32.lib を C:\Progma Files (x86)\Microsoft Visual Stdio 10.0\VC\lib\ に glut32.dll を C:\Windows\SysWOW64\ にコピーしました。
  • glut の代わりに freeglut も試してみたのですが、同様のエラーで止まってしまいました。使用しているマシンは Surface Pro でディスプレイアダプターは、 Intel(R) HD Graphics 4000 です。ネットでいろいろ調べて Windows8 にインストールしている事例もちらほら見かけたので、Windows8 でも動くとは思うんですが、どうにもうまくいきません。dll が Windows8 に対応していないのか、Surface だから駄目なのか、検討がつきません。原因をご存知の方がいましたら、どうか詳しく教えていただけないでしょうか?よろしくお願いします。
回答を見る
  • ベストアンサー

Windows8+OpenGLで未処理の例外エラー

Windows8 Pro のマシンで OpenGL を使うため、glut をインストールし、 簡単なサンプルをコンパイルして実行したところ、 「ユーザーコールバック中に未処理の例外エラーが発生しました」 というエラーを吐いて止まってしまいました。 統合環境は Visual C++2010 Express を利用しています。 サンプルプログラムは、以下の通りです。 #include <GL/glut.h> void display(void) { glClearColor(1.0, 1.0, 1.0, 1.0); glClear(GL_COLOR_BUFFER_BIT); glFlush(); } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA); glutInitWindowSize(640,480); glutCreateWindow(”window”); glutDisplayFunc(display); glutMainLoop(); return 0; } glut は様々なサイトで紹介されている方法通りに、 公式ページにて必要なファイル (32bit版) をダウンロードし、 glut.h を C:\Program Files (x86)\Microsoft Visual Stdio 10.0\VC\include\GL\ に、 glut32.lib を C:\Progma Files (x86)\Microsoft Visual Stdio 10.0\VC\lib\ に glut32.dll を C:\Windows\SysWOW64\ にコピーしました。 glut の代わりに freeglut も試してみたのですが、同様のエラーで止まってしまいました。 使用しているマシンは Surface Pro で ディスプレイアダプターは、 Intel(R) HD Graphics 4000 です。 ネットでいろいろ調べて Windows8 にインストールしている事例もちらほら見かけたので、 Windows8 でも動くとは思うんですが、どうにもうまくいきません。 dll が Windows8 に対応していないのか、Surface だから駄目なのか、検討がつきません。 原因をご存知の方がいましたら、どうか詳しく教えていただけないでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

C:\Progma Files (x86)\Microsoft Visual Stdio 10.0\~ と書かれている部分は単に C:\Program Files (x86)\Microsoft Visual Studio 10.0\~ の書き間違いかと思いますが、提示されたソースを当方の環境(x64 Windows 8, Visual Studio Pro 2010 SP1)でビルドし、x86バージョンの実行ファイルを作成しましたが、特に問題なく動いているようです。 実行環境の問題であるように思われるので、グラフィックドライバが最新のものかどうかなどのチェックをしてみるのがよさそうです。

nasuminn
質問者

お礼

グラフィックドライバのバージョンを調べたところ、 1つ前のバージョンとなっておりまして、 最新のドライバをインストールしたら、解決しました。 どうもありがとうございました。 助かりました。

関連するQ&A

  • openGLについて

    最近プログラムを学んでいる初心者の者です。 私は床井研究室の”GLUTによる「手抜き」OpenGL入門”というサイトを使い学んでいるのですが、最初の段階でつまずいてしまいました。 最初のウィンドウを開く段階で #include <GL/glut.h> void display(void) { } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutCreateWindow(argv[0]); glutDisplayFunc(display); glutMainLoop(); return 0; } とすると書いてあるのですが、 最初の#includeのところがペーストしてもエラーが出ます。 あと他のサイトを見ると#includeが複数書かれているようです。 何か解決する方法はありますでしょうか。 ちなみに 私が使っているのはwindows7です。 どうかお願いします。

  • BCCDeveloperでのOpenGLのコンパイルについて

    環境は BorlandC++Compiler Version 5.5 Developer Version1.2.21 GLUT Version 3.7 OS WindowsXP PC NEC LL730/7 です。 GLUTをインストールし、次のプログラムをコンパイルしたのですが、コンパイルエラーは出なかったのですが、実行時に 「プロシージャ エントリ ポイント _glutCreateWindow@4がダイナミック リンク ライブラリ GLUT32.DLL から見つかりませんでした。」 と言うエラーメッセージが出ました。 原因がわかる方がいれば教えてください。 #include <GL/glut.h> void display(void) { } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutCreateWindow(argv[0]); glutDisplayFunc(display); glutMainLoop(); return 0; }

  • OpenCVを使いたいのですが

    Visual C++ 2010にOpenCV2.4.3の導入し、設定を終えたのでプログラムをビルドさせるとエラーが吐き出され動作しません。 どなたか原因がわかる方はいらっしゃらないでしょうか? 【プログラム】 #include<stdio.h> #include<openCV2/opencv.hpp> #ifdef _DEBUG #pragma comment(lib,"opencv_core243d.lib") #pragma comment(lib,"opencv_highgui243d.lib") #pragma comment(lib,"opencv_objdetect243d.lib") #else #pragma comment(lib,"opencv_core243d.lib") #pragma comment(lib,"opencv_highgui243d.lib") #pragma comment(lib,"opencv_objdetect243d.lib") #endif //-------------------------------------------------------- //main int main(int argc,char* argv[]) { const char* szWndName="画像"; if(argc<2) { fprintf(stderr,"入力ファイル名を指定してください。\n"); return -1; } IplImage *img=cvLoadImage(argv[1],CV_LOAD_IMAGE_COLOR); if(img==NULL) return -1; cvNamedWindow(szWndName); cvShowImage(szWndName, img); cvWaitKey(0); cvDestroyAllWindows(); cvReleaseImage(&img); return 0; } 【ビルド後にでるエラーメッセージ】 ------ すべてのリビルド開始: プロジェクト: OpenCV, 構成: Debug Win32 ------ TEST02.c C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(19): error C2054: 'using' の後に '(' が必要です。 C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(19): error C2061: 構文エラー : 識別子 'using' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(19): error C2054: 'using' の後に '(' が必要です。 C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(21): error C2061: 構文エラー : 識別子 'using' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(21): error C2061: 構文エラー : 識別子 'abs' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(21): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(21): error C2061: 構文エラー : 識別子 'atexit' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(21): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(22): error C2061: 構文エラー : 識別子 'atof' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(22): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(22): error C2061: 構文エラー : 識別子 'atoi' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(22): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(22): error C2061: 構文エラー : 識別子 'atol' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(22): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(23): error C2061: 構文エラー : 識別子 'bsearch' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(23): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(23): error C2061: 構文エラー : 識別子 'calloc' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(23): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(23): error C2061: 構文エラー : 識別子 'div' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(23): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(24): error C2061: 構文エラー : 識別子 'exit' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(24): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(24): error C2061: 構文エラー : 識別子 'free' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(24): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(24): error C2061: 構文エラー : 識別子 'getenv' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(24): error C2059: 構文エラー : ';' C:\Program Files\Microsoft Visual Studio 10.0\VC\include\cstdlib(25): error C2061: 構文エラー : 識別子 'labs' この後はエラー表記が続きます。

  • OpenGLでウィンドウハンドルの取得

    コンソールアプリで作ることが前提です。 glut関数で作成したウィンドウのハンドルを取得し、その画面上に文字を表示しようとTextOutやDrawTextやらを使ってみたんですが、背景色しか表示されません。DrawTextの戻り値が18だったので成功していると思うのですが。どこがおかしいのかご指摘をお願いします。 #include<stdio.h> #include<windows.h> #include<GL/glut.h> HWND hwnd; void display(){ glClearColor(0.5,0.5,0.5,1); glClear(GL_COLOR_BUFFER_BIT); hwnd=GetActiveWindow(); PAINTSTRUCT ps; HDC hdc; RECT rect; LPCSTR str = TEXT("あああ"); GetClientRect(hwnd, &rect); hdc = BeginPaint(hwnd, &ps); SetRect( &rect, 10, 10, 100, 100); TextOut(hdc, 10, 10, str, lstrlen(str));    DrawText(hdc, TEXT("あああ"), -1, &rect,DT_CENTER); EndPaint(hwnd, &ps); glFlush(); } int main(int argc,char **argv){ glutInit(&argc,argv); glutInitWindowSize(640,480); glutCreateWindow("aaa"); glutDisplayFunc(display); glutMainLoop(); return(0); }

  • Visual C++ 2005 Express Editon でのビルドエラー

    OpenGLのプログラム環境を自分のPCで整えたいと思い、OpenGL,Windowsなどで検索したホームページなどを参考にして色々やってみたのですが、うまくいきませんでした。OSはXPです。 まずコマンドラインコンパイラとVisual C++ 2005 Express Editionの両方で試してみたのですが、コンパイルまたはビルドの際に fatal error C1083: include ファイルを開けません。'GL/gl.h': No such file or directory というエラーが出てしまいます。 glut.h glut32.dll glut32.libはソースと同じフォルダにあります。 学校では.NET 2003を使用しているのですが、問題なく動いています. glut.hでGL/gl.hを呼び出しているようなのですが・・・ 根本的に設定が違うのでしょうか?

  • OpenGLのGLUT機能の導入につて

    今回 VisualStudio 2008 C++ を使って OpenGL を使ったアプリケーション開発に挑戦中ですが、 GLUT 機能が必要になり 、サイト"Nate Robins - OpenGL" からダウンロードして、 Windows 7 の適切なシステムフォルダーに格納コピーしようと考えております。 ところが、 GLUT を格納コピーすべきフォルダーパスが判らず困っています。 使っているWindows 7 のそれらしいフォルダーパスを調べたうえで、 お尋ねしたい質問項目を下記いたしましたので、どうかご教示ください。 ***.lib ファイルの格納フォルダー opengl32.lib : C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\x64 glu32.lib : C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\x64 opengl32.lib : C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib glu32.lib : C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib glut32.lib : 質問3:上記のどちらに格納すればよいのでしょうか?          両方共にコピーすべきでしょうか? ***.h ファイルの格納フォルダー gl.h : C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\gl glu.h : C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\gl glut.h : 質問2:上記に格納して構いませんか? ***.dll ファイルの格納フォルダー opengl32.dll : C:\Windows\System32 glu32.dll : C:\Windows\System32 glu32.dll.mui : C:\Windows\System32\ja-jp opengl32.dll : C:\Windows\SysWOW64 glu32.dll : C:\Windows\SysWOW64 glu32.dll.mui : C:\Windows\SysWOW64\ja-jp glut.dll : 質問3:上記のどちらに格納すればよいのか?              両方共にコピーすべきでしょうか?         質問4:glu32.dll.mui はなくて構わないのでしょうか? 以上

  • OpenGLで登録したコールバック関数の引数

    OpenGLで画面を描画をする際に, 以下のソースのように,glutDisplayFuncに関数を登録しています. main関数で,定義した定数や,そのポインタを display_funcに渡したいと思うのですが, どのような方法があるのでしょうか? 現在,私は,グローバル変数を定義して,それをmain関数とdisplay関数で いじっています. ソースコードの整理,関数化のため,できれば,ポインタや引数を渡したいです. どうぞよろしくお願いします. --------------------------------------------- #include <GL/glut.h> void display_func(void) { 描画内容を記述 } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutCreateWindow(argv[0]); glutDisplayFunc(display_func); glutMainLoop(); return 0; } ---------------------------------------------

  • 粒子法プログラムのビルドエラー(cstdlibのエラー)

    粒子法のMPS法のプログラミングをしているのですが、C++でmps.cをビルドをすると、cstdlibのエラーが出てビルドが出来ません。 mps.cの本文中にはエラーは無く、visual studio 9.0にあるcstdlibの構文エラーが出てしまいます。 最初から入っているライブラリファイルが間違っているとは思えません。 解決法を教えてください。お願いします。 ↓ mps.c内でcstdlibを使っている場所 ↓ #include <cstdlib> /* This line is necessary for C++ compiler. Remove this line in C compiler */ #include <stdio.h> #include <sys/types.h> #include <math.h> #include <string.h> ↓ エラーメッセージ ↓ 1>コンパイルしています... 1>mps.c 1>c:\program files\microsoft visual studio 9.0\vc\include\cstdlib(21) : error C2143: 構文エラー : '{' が ':' の前にありません。 1>c:\program files\microsoft visual studio 9.0\vc\include\cstdlib(21) : error C2059: 構文エラー : ':' 1>c:\program files\microsoft visual studio 9.0\vc\include\cstdlib(21) : error C2143: 構文エラー : '{' が ':' の前にありません。 1>c:\program files\microsoft visual studio 9.0\vc\include\cstdlib(21) : error C2059: 構文エラー : ':' 1>c:\program files\microsoft visual studio 9.0\vc\include\cstdlib(21) : error C2143: 構文エラー : '{' が ':' の前にありません。 1>c:\program files\microsoft visual studio 9.0\vc\include\cstdlib(21) : error C2059: 構文エラー : ':' 省略(21行目のエラーが23~32行目まで同じエラーが続く) 1>MPS3000 - エラー 62、警告 0 ========== すべてリビルド: 0 正常終了、1 失敗、0 スキップ ==========

  • windows10でVC6.0++のclを使いたい

    cl.exeの場所:C:\Program Files\Microsoft Visual Studio\VC98\Bin 環境変数INCLUDE設定:C:\Program Files\Microsoft Visual Studio\VC98\Include 環境変数LIB設定:C:\Program Files\Microsoft Visual Studio\VC98\Lib を登録したのですが、mspdb60.dllがないといわれました。 検索したらあるのですが、 どうすれば、Windows10でvc6.0++のCコンパイラを使えますか? 教えてくださいよろしくお願いします。

  • cygwinでopenGL

    cygwinでopenGLが出来ません>< まず、私がやった設定を書いてみます。 学校で使用している教科書に指定されているように、 実行用DLLファイル[opengl32.dll][glu32.dll][glut32.dll]の3つを\WINDOWS\system32に入れました。(glut32.dll以外は元々ありました) ヘッダファイル[gl.h][glu.h][glut.h]の3つを\cygwin\usr\include\w32api\GLに入れました。(glut.h以外は元々あり、[glext.h]というのもありました) 開発ライブラリとして[opengl32.lib][glu32.lib][glut32.lib]を入れるように書いてあり、入れる場所はおそらく\cygwin\lib\w32apiだと思うんですけど、[libopengl32.a][libglu32.a][libglut32.a]なるものが既に存在しました。これは同じ物とみなしてよろしいのでしょうか? 次に、[gcc ●●.c -DWIN32 -lglut32 -lglu32 -lopengl32]とコンパイルしてみた所、エラーが大量に出ました。コンパイル方法が間違っているのでしょうか? 以前にJAVAを学習するときに、環境変数を変えたんですけれど、それが影響しているのでしょうか? 質問多くて、しかもややこしくてすみません。

専門家に質問してみよう