Pergunta

Quais são as etapas básicas para compilar um aplicativo OpenGL usando GLUT (kit de ferramentas de utilitário OpenGL) no Visual C++ Express Edition?

Foi útil?

Solução

  1. Se você não tiver o Visual C++ Express Edition (VCEE), baixe e instale VCEE.
  2. A instalação padrão de compilações do Visual C++ Express Edition para a plataforma .Net.Precisaremos construir para a plataforma Windows, já que OpenGL e GLUT ainda não são totalmente suportados em .Net.Para isso precisamos do SDK da plataforma Microsoft.(Se você estiver usando uma versão mais antiga do VCEE, baixe e instale o SDK da plataforma Microsoft.O Visual C++ Express Edition precisará ser configurado para compilar para a plataforma Windows.Todas essas instruções estão disponíveis aqui.)
  3. Se você não tem GLUT, baixe e descompacte o Nate Robin's Porta Windows do GLUT.
  4. Adicionar glut.h para o seu Plataforma SDK/include/GL/ diretório
  5. Vincule o projeto com glut.lib.(Vá para VCEE Propriedades do projeto -> Diretórios adicionais do vinculador e adicione o diretório que contém glut.lib.
  6. Adicionar glut.dll para o Windows/Sistema32 diretório, para que todos os programas que usam GLUT pode encontrá-lo em tempo de execução.

Seu programa que usa GLUT ou OpenGL deve ser compilado no Visual C++ Express Edition agora.

Outras dicas

A porta GLUT no site de Nate Robin é de 2001 e tem algumas incompatibilidades com versões do Visual Studio mais recentes que essa (.NET 2003 e superior).A incompatibilidade se manifesta como erros sobre a redefinição de exit().Se você vir esse erro, há duas soluções possíveis:

  1. Substitua o exit() protótipo em glut.h com aquele em seu stdlib.h para que eles combinem.Esta é provavelmente a melhor solução.
  2. Uma solução mais fácil é #define GLUT_DISABLE_ATEXIT_HACK antes de você #include <gl/glut.h> em seu programa.

(Devido crédito:Eu originalmente vi este conselho no Site de suporte técnico da TAMU.)

Eu mesmo tenho usado a abordagem nº 1 desde o lançamento do .NET 2003 e usei a mesma abordagem modificada glut.h com VC++ 2003, VC++ 2005 e VC++ 2008.

Aqui está a diferença para o glut.h que eu uso, que faz o número 1 (mas no apropriado #ifdef blocks para que ainda funcione com versões mais antigas do Visual Studio):

--- c:\naterobbins\glut.h       2000-12-13 00:22:52.000000000 +0900
+++ c:\updated\glut.h    2006-05-23 11:06:10.000000000 +0900
@@ -143,7 +143,12 @@

 #if defined(_WIN32)
 # ifndef GLUT_BUILDING_LIB
-extern _CRTIMP void __cdecl exit(int);
+/* extern _CRTIMP void __cdecl exit(int);  /* Changed for .NET */
+#  if _MSC_VER >= 1200
+extern _CRTIMP __declspec(noreturn) void __cdecl exit(int);
+#  else
+extern _CRTIMP void __cdecl exit(int);
+#  endif
 # endif
 #else
 /* non-Win32 case. */
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top