2010-08-07 12 views
1

Je viens d'un arrière-plan .NET et je vais aller dans le domaine du rendu/graphiques en utilisant OpenGL/DirectX. Pour cela, C++ sera mon langage de choix pour interagir avec ces frameworks de rendu. Si je comprends bien, Visual C++ permet un support natif pour CLI qui est une extension de C++ qui permet à l'application de bénéficier de l'exécution gérée. Recommanderiez-vous de passer du temps à vous habituer à C++/CLI ou devrais-je m'en tenir au langage C++?C++/CLI ou C++ simple en ce qui concerne les graphiques/rendu

En outre, lors de l'utilisation de l'IDE Visual C++, que puis-je attendre du compilateur? Le code compilé C++ standard sera-t-il un exécutable standard capable de s'exécuter partout où un exécutable C++ normal serait exécuté? J'ai entendu que le compilateur pour VC++ vient avec questions de ses propres.

+0

Lire: http://stackoverflow.com/questions/536065/c-opengl –

+0

Je ne suis pas intéressé par l'utilisation des proxies .NET des frameworks. –

Répondre

2

Cela dépend vraiment de ce que vous cherchez. C++/CLI a des avantages que peu d'autres langages .NET partagent (un support solide pour le mode mixte étant l'un d'entre eux), mais c'est toujours un paradigme .NET à cœur. La seule raison pour laquelle vous allez vous y plonger, c'est si vous voulez ce que propose .NET. Si votre premier besoin concerne les applications de type plein écran, il est peu probable que l'apprentissage des extensions .NET vous apportera beaucoup de choses, car l'apprentissage de l'une des bibliothèques d'extension C++ les plus performantes ne vous conviendrait pas, et l'option C++ uniquement compatibilité de plate-forme.

En ce qui concerne le compilateur, les dernières années ont vu des améliorations spectaculaires dans la compilation C++ de Visual Studio. Les exécutables compilés nécessitent l'installation correcte du moteur d'exécution sur le système cible, mais ce n'est pas une exigence particulièrement onéreuse.

+1

En outre, vous pouvez facilement ajouter '/ MT' ('/MTd' pour le mode de débogage) pour lier statiquement l'exécution et se débarrasser de cette exigence. – Thomas

+0

@Thomas: Pas si vous utilisez C++/CLI, qui ne peut utiliser que la version de la bibliothèque partagée de l'exécution. –

+0

Ce bit concernait uniquement le C++ natif. C++/CLI ne nécessite pas seulement le CRT, mais l'ensemble de la plate-forme .NET (qui installe également le CRT, soit dit en passant, mais je ne suis pas sûr que cela soit fiable). – Thomas

0
  1. C++/CLI en général est une douleur et à mon avis, ne vaut pas les aspects positifs d'avoir accès à la bibliothèque .NET.
  2. Visual C++ est un compilateur assez décent et générera des exécutables standard. Cependant, il suit le paradigme standard de Windows, préférant lier dynamiquement les bibliothèques aux bibliothèques et vous pouvez avoir des problèmes si les bibliothèques correctes sont installées sur le système en cours d'exécution. Cela pourrait être un problème, disons, pour le runtime c standard, et certaines applications s'assurent qu'il est installé avec leur programme. Si vous creusez dans les options de compilation, vous pouvez configurer Visual C++ pour faire ce que vous voulez, par exemple un lien entre le moteur d'exécution c statiquement (http://msdn.microsoft.com/en-us/library/abx4dbyh(VS.80).aspx)
+0

Il ne s'agit pas d'avoir accès à .NET à partir de C++/CLI, il s'agit d'avoir une interface beaucoup plus propre aux composants construits en C++/CLI que ce qui serait possible en utilisant p/invoke. –