Pergunta

Eu tenho um aplicativo que é construído contra OpenSceneGraph (2.6.1) e, portanto, indiretamente OpenGL. Os inicializa aplicação e começa a correr, mas depois eu recebo a seguinte exceção "tentativa foi feita para executar uma ordem de bloqueio inválido" em Opengl32.dll. Quando eu re-run-lo, às vezes eu recebo esta exceção, e às vezes uma exceção de uma "instrução privilegiada". Os olhares da pilha de chamadas como ele está corrompido, então eu realmente não posso dizer exatamente onde a exceção está sendo lançada a partir de. Corri o aplicativo um pouco um par de dias atrás, e nunca vi esse comportamento. Desde então eu adicionei uma cláusula else para um par de ifs, e isso é tudo. Meu aplicativo é um aplicativo de console, é construído com Visual Studio 2008, e define OpenScenGraph para o modo SingleThreaded. Alguém viu isso antes? Todas as dicas de depuração?

Foi útil?

Solução

Você pode reproduzi-lo com um dos exemplos padrão?
você pode criar um aplicativo mínimo que provoca isso?
Você tem uma máquina com uma placa de vídeo de marca diferente, você pode testá-lo em (por exemplo Nvidia vs. ATI), existem alguns problemas com openscenegraph e drivers OpenGL ruins.

Você já tentou postagem para osg-users@lists.openscenegraph.org

Outras dicas

O problema acabou por ser o nosso app estava pegando uma versão incorreta do OpenGL DLL, em vez do instalado no System32.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top