2017-08-25 12 views
0

Visual C++ 2017の下では、GLFW 3.2.1のコアルーチン(glfwInit()glfwWindowShouldClose()glfwTerminate() ...のような)を持つプロジェクトDLLがあります。これらのメソッドは、RenderLoopという名前の静的クラスにカプセル化されています。それはGLADとGLMも使用します。 反対側では、同じソリューションでRenderLoopメソッドを呼び出すEXEプロジェクトアプリケーションがあります。OpenGL GLFW GLADはプロジェクト間で共有しますVisual C++

すべてがうまくいき、exeを起動し、ウィンドウが作成され、ループが実行されています... 初期化後、EXE内でいくつかのgl関数(glGenVertexArraysなど)を呼び出そうとします。私はアクセス違反例外を取り除くことはできません。

このgl関数をDLLに入れると、すべて正常に動作します。私はEXEに入れて、それはクラッシュします。 DLLとEXEの間でOpenGLを共有する "トリック"はありますか?

+0

わからない初期化した後、DLL内のgladLoadGLLoaderへの呼び出しを追加し、ロビンソンを示唆しましたか?私は、DLLを読み込むと、魔法のように、GLADがdllで設定したすべての関数ポインタを与えるとは思わない。 – Robinson

+0

はい、そうです、gladLoadGLLoaderへの呼び出しを追加しました。それはトリックでした 多くのありがとう! –

答えて

0

としては、私はあなたがあなたのEXEプロセスでGLAD初期化しようとしなかったことで

関連する問題