1

まず、glfwdll.a と glfw.dll の 64 ビット バージョンを作成する必要があります (そのため、Windows で Go glfw バインディングを動作させることに最終的に成功することができます... Linux では簡単でした!)

"maincrt entry point not found, using default 0xsomehexnumber.代わりに」またはそのようなもの。もちろん、エントリ ポイントは実行可能ファイルを参照します。この場合は、examples ディレクトリにあるものです。

実際、それらのほとんどは機能しません。しかし、すべてが構築されました。次の実行可能ファイルが機能します。

listmodes.exe mtbench.exe mthello.exe およびparticle.exe - 後者は私にとって唯一のグラフィカル(3d gfx)の例です(前者はコンソールウィンドウにいくつかのテスト情報を出力するだけです)。

さて、他の問題は何ですか?それらはクラッシュせず、コンソールに何も報告しません...私がそれらを実行すると、すぐに、静かに戻ります。

私のGLFWビルドは壊れていますか? 直し方?動作する 4 つの例と動作しない他の例の大きな違いは何ですか?

これはかなり新しいバニラ Win7 64 ビット インストールです。クラップウェアはなく、すべてが最新で、UAC とテーマはオフで、多くのソフトウェアはまったくインストールされておらず、Nvidia GPU ドライバーが更新されています (GPU Caps Viewer などは正常に動作するため、OpenGL が存在します)。

4

2 に答える 2

3

コメントを追加することはまだ許可されていないため、これを回答として投稿します。

あなたが抱えている問題は、GLFW の 3 つの個別のバグによるものです。今日それらを修正しました。修正はGLFW 2.7.6に含まれます。それまでは、GLFW Subversion リポジトリからトランクを使用できます。

于 2012-07-02T20:59:15.937 に答える
2

opengl32.dll、glu32.dll、glut32.dll などに DLL 地獄の問題がないことを確認するには、イベント ビューアー ツールをチェックして、アプリに警告やエラーがないか確認してください。

これは、「実際の」OpenGL API とは何の共通点もない mtbench と mthello しか実行できないため、私の考えです。

ただし、particle.exe についての手がかりはありません。おそらく、GLFW が内部でエラーをチェックし、exit() ルーチンを呼び出しますか? %errorlevel% も確認してください。

こちらもご覧ください: http://glfw.svn.sourceforge.net/viewvc/glfw/trunk/examples/pong3d.c?revision=1110&view=markup

"!glfwGetWindowParam( GLFW_OPENED )" の場合、黙って終了する可能性のある GameMenu() 関数があります。これは明らかに OpenGL が初期化されていないことを意味します。

同じ関数がここで終了フラグとして機能します http://glfw.svn.sourceforge.net/viewvc/glfw/trunk/examples/wave.c?revision=1110&view=markup

もう一度、DLL を再確認してください。

ビルドプロセスで「高度な」間違いを犯さない経験があると思いますので、「ユーザーレベル」で面白いことが起こるかもしれません。

そして別の提案: http://sourceforge.net/projects/glfw/forums/forum/247562/topic/3868944

一部のパラメーターは、正確に機能しない場合があります。

サンプルを「修正」するには、glfwGetWindowParam 呼び出しをコメントアウトしてみてください。

于 2012-04-28T13:48:44.510 に答える