Comment faire fonctionner CVI avec OpenGL, Freeglut et Glew

J’ai toujours eu u faible pour la 3D et faire fonctionner CVI avec OpenGL est un truc qui m’a toujours intéressé. Cela dit, OpenGL a pas mal évolué et son modèle de programmation a complètement changé depuis les bonnes vielles années 90 (Opengl 1.1 par exemple, programmation en mode immédiat avec glBegin() et glEnd() etc.).

On va voir ici comment en quelques minutes ceux qui voudraient tirer parti des toutes dernières possibilités d’OpenGL 4.x (ou inférieure bien sûr), de Freeglut et de Glew dans CVI peuvent le faire dans la joie et la bonne humeur.

Si vous …

Lire la suite Comment faire fonctionner CVI avec OpenGL, Freeglut et Glew

Première vidéo CVI sur YouTube – Intro et mode console

Après des années d’hésitation, j’ai enfin posté une vidéo à propos de CVI sur YouTube. Rendez-vous sur : https://www.youtube.com/watch?v=48pPFFJe27Y (soyez indulgents et merci pour les feedbacks.) ou alors visionnez-la ici.

Le making of

En fait c’est un peu « merdique » au niveau des réglages alors je note tout ici comme ça, au pire, je n’aurai plus qu’à copier/coller la prochaine fois. Si en plus cela peut rendre service… Il n’y a pas de mal à se faire du bien. Pour commencer, en termes d’outils il va falloir :

  • CamStudio (http://camstudio.org/)
  • Codec Jawor XVid (http://codecpack.co/download/Jawor_Xvid_Binaries.html)
  • VirtualDub (http://www.clubic.com/telecharger-fiche10126-virtualdub.html)
  • VLC (http://www.clubic.com/telecharger-fiche10829-vlc-media-player.html)
  • Lame ACM MP3 Codec (attention l’install sous  win64 est …

    Lire la suite Première vidéo CVI sur YouTube – Intro et mode console

  • 3 vidéos de CVI à propos des interfaces graphiques

    Pensez à visionner les vidéos en mode 720p et n’hésitez pas à vous mettre en plein écran car sinon vous ne verrez pas grand-chose à l’écran.

    Dans ce jeu de 3 vidéos je pars de zéro et, pas à pas, je crée une application Windows 32 et 64 bits, multithread dont l’interface se redimensionne à la demande. Pas de quoi casser trois pattes à un canard mais je pense qui si vous pigez la méthode et ces histoires de callback, vous devriez être sauvé. En effet, vous aurez non seulement vu l’éditeur d’interface graphique ainsi que certaines des bibliothèques …

    Lire la suite 3 vidéos de CVI à propos des interfaces graphiques

    Transformer votre application CVI en Serveur ActiveX

    On m’a posé la question cette semaine et pour être honnête je n’avais pas la réponse « on the top of my head ». Bon allez on commence : « Salut Philippe, ça va ? Oui bon, j’ai une application CVI qui tourne mais faudrait que j’en fasse un serveur ActiveX afin qu’on puisse invoquer certaines de ses fonctions à partir d’une autre application. T’as une idée ? ». « Heu… Tu me laisse 2 min… Je te rappelle en fin de journée… »

    En fait je n’ai pas pu rappeler mon pote dans la journée (trop de boulot) …

    Lire la suite Transformer votre application CVI en Serveur ActiveX

    Fichier .ecc pour CVI et Visual Studio Express 2012

    Je travaille avec CVI 2012. Dès sa sortie j’ai installé Visual Studio Express 2012 for Desktop afin de compiler mes codes CVI en mode release avec. Petit problème CVI 2012 ne possède pas encore de fichier .ecc pour MSVC 2012.

    Pour rappel, afin de compiler ses codes avec un compilateur optimisé il faut aller dans Options, Build Options, onglet Build Process Options puis selon que vous travaillez en 32 ou en 64 bits, dans le cadre « Compiler for Release Configurations » il faut cliquer sur le bon bouton « … »

    Choix du compilateur pour la version Release …

    Lire la suite Fichier .ecc pour CVI et Visual Studio Express 2012

    CVI sur YouTube – Tout ou presque sur l’éditeur de code

    Dans cet épisode je présente tout ce qui me semble utile dans l’éditeur de code et je regroupe ce que j’utilise selon trois grandes catégories :

  • L’édition et la refactorisation de code
  • L’écriture de code
  • L’utilisation de l’éditeur lors de la phase de compilation.
  • En plus, il y a un bonus à propos des possibilités d’extension de l’environnement de développement ainsi que sur le « bac à sable » de CVI (la fenêtre interactive). Je vous laisse regarder. Si vous avez des commentaires à propos de l’éditeur de code ou de CVI en général, vous pouvez le faire ici ou sur …

    Lire la suite CVI sur YouTube – Tout ou presque sur l’éditeur de code

    Parcours de répertoires de manière récursive en C ANSI

    Dans un récent projet j’ai dû coder un parcours de répertoires récursif. Bien sûr il fallait traiter les sous-répertoires et les fichiers afin d’appliquer un traitement particulier aux fichiers .c que je trouvais. En fait ce n’est pas possible avec les fonctions GetFirstFile() et GetNextFile() de CVI car elles ne supportent pas bien la récursivité. Voilà ce que j’ai dû écrire (attention il ne faut pas oublier d’inclure le fichier windows.h en haut du code source). N’hésitez pas à faire du copier-coller si besoin.

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 …

    Lire la suite Parcours de répertoires de manière récursive en C ANSI

    SQLite et CVI – Etape par étape et sans prise de tête

    sqlite

    Un rapide tutoriel qui montre comment utiliser SQLite et CVI. Il faut commencer par récupérer sur le site de SQLite (http://www.sqlite.org/download.html) les trois fichiers zip qui vont bien :

  • sqlite-amalgamation-xxx.zip
  • sqlite-dll-win32-x86-xxx.zip
  • sqlite-shell-win32-x86-xxx.zip
  • Dans le répertoire Téléchargements de Windows dézippez ensuite les fichiers en question.

    Dans le répertoire « amalgamation » copiez sqlite3.h et collez le dans un répertoire nommé « testsql » par exemple.

    Dans le répertoire « sqlite-dll » copiez le fichier sqlite3.dll et collez-le dans le répertoire testsql précédent.

    Dans le répertoire « shell » copiez le fichier sqlite3.exe et collez-le dans le répertoire testsql précédent.

    Toujours dans le gestionnaire de fichier Windows, faites …

    Lire la suite SQLite et CVI – Etape par étape et sans prise de tête

    Les fonctions les plus utilisées dans les exemples CVI

    J’ai eu l’occasion de faire une analyse de tous les codes source des exemples qui viennent avec CVI 2013. En fait je souhaitais établir la liste des fonctions les plus utilisées.

    Il a fallu que je m’y reprenne à deux fois mais cette fois je crois disposer d’un résultat fiable. En effet au départ j’avais des problèmes avec les codes qui utilisaient le SDK ou .NET. Je ne faisais alors l’analyse que de 152 codes sources sur 360 disponibles. Dans un deuxième temps je tiens compte de pratiquement tous les fichiers sources. J’ai encore des problèmes avec 17 …

    Lire la suite Les fonctions les plus utilisées dans les exemples CVI

    Crible d’Eratosthène – Un exemple d’optimisation de code


    Introduction

    Dans cet article, sous prétexte de m’intéresser au crible d’Eratosthène, je vais prendre un peu de temps pour expliquer deux ou trois techniques d’amélioration et d’optimisation de code. On aura l’occasion de faire des mesures précises de temps, de revoir des trucs à base de manipulation de bits etc… Quoiqu’il en soit, pour illustrer tout cela, je vais m’appuyer sur un exemple hyper classique : le Crible d’Ératosthène avec lequel on tentera de sortir le nombre d’entiers premiers inférieurs à 5 000 000 le plus rapidement possible.

    Je ne reviens pas sur le principe de cet algorithme qui permet de retrouver …

    Lire la suite Crible d’Eratosthène – Un exemple d’optimisation de code

    Utiliser Clang pour générer du code assembleur

    Avec CVI 2013, si pour une raison ou pour une autre vous souhaitez traduire en assembleur un de vos codes source, ouvrez une console (touche Windows + R et vous tapez cmd) dans laquelle vous saisissez la commande suivante. Attention, ici on suppose que le code s’appelle wintest.c

    « C:\Program Files (x86)\National Instruments\CVI2013\bin\clang\2.9\clang.exe » -cc1 -triple i386-pc-win32 -S -nostdinc -triple i386-pc-win32 -fno-caret-diagnostics -fno-gnu-keywords -fms-extensions -mms-bitfields -fmath-errno -mdisable-fp-elim -Wno-microsoft -Werror=gnu -Werror=pointer-arith -Wpointer-sign -Wunreachable-code -Wparentheses -Wunused-variable -Wuninitialized -Wdiv-by-zero -Warray-bounds -Wnull-dereference -Wignored-qualifiers -Wreturn-type -Wpanel-handle -Wtautological-compare -Wempty-body -Wmissing-braces -Woverlength-strings -Wcast-align -Wmissing-noreturn -Winvalid-noreturn -Wshadow -Wswitch -Wswitch-enum -Wunused-function -Wunused-label -Wunused-parameter -Wunused-value -Wused-but-marked-unused -Wconversion -Wsign-compare -Wchar-subscripts -Wdeclaration-after-statement -Wtypecheck-convert …

    Lire la suite Utiliser Clang pour générer du code assembleur

    Compiler et linker ses projets CVI entièrement avec MSVC


    Introduction

    Avec CVI il est très facile de compiler son code avec un compilateur optimisé. J’ai déjà écrit un billet à ce sujet. Ici on va plus loin puisque le but est de compiler et de linker l’ensemble du projet dans Visual C++ par exemple. Quel intérêt ? À mon avis il est double : vitesse et compacité. Mais bon, on se calme, on va avancer pas à pas et on reviendra sur le sujet en temps utile.

    Un code d’exemple très simple

    On commence avec un exemple de code très court qui fonctionne dans l’IDE de CVI. Le …

    Lire la suite Compiler et linker ses projets CVI entièrement avec MSVC

    Architecture d’application temps réel avec CVI


    Introduction

    Dans cet article, on va s’intéresser plus à l’architecture sur laquelle pourraient s’appuyer nos futures applications temps réel. Attention, afin de pouvoir se concentrer sur l’architecture et non sur les questions de base, je suppose que vous êtes capables d’installer une cible temps réelle et que vous avez déjà écrit une application temps réel simple avec CVI. On peut donc maintenant passer à la suite des opérations.

    Quel est le cahier des charges ?

  • Premièrement, je veux une application qui s’articule en deux gros morceaux. Un bout tournera sous Windows (le client) et l’autre morceau tournera lui sur …

    Lire la suite Architecture d’application temps réel avec CVI

  • Configurer CVI pour utiliser des compilateurs optimisés


    Introduction

    En 2012, le compilateur de CVI n’est toujours pas optimisé. Il a plein d’autres avantages mais bon, le code généré en mode release est très lent comparé à ce que l’on peut obtenir dans d’autres environnements. Je vais ici prendre 5 minutes pour expliquer ce qu’il faut faire pour qu’à partir de l’environnement CVI, lorsque vous êtes en mode release, le code soit compilé à l’aide d’un compilateur externe (et donc beaucoup plus rapide).

    Ouvrez l’exemple life.cws qui se trouve dans ../samples/apps/life

    SHIFT+F5. Le code se compile en mode debug et la fenêtre suivante apparaît :

    Dans la …

    Lire la suite Configurer CVI pour utiliser des compilateurs optimisés

    Compiler LUA avec CVI – Toutes les étapes expliquées

    Compiler LUA avec CVI

    LUA est un compilateur que l’on peut facilement embarquer dans des applications. Il est entièrement écrit en C. Très léger et bénéficie d’une bonne réputation. J’en avais déjà entendu parlé par un utilisateur de CVI qui l’intégrait régulièrement dans ses applications. Récemment, j’ai regardé dans le détail les spécifications des calculatrices Texas Instrument et encore une fois je suis tombé sur LUA qui est dorénavant le langage de script par défaut des calculatrices de dernière génération. Bref, il fallait à tout prix que je fasse fonctionner LUA avec CVI.

    De fil en aiguille j’ai récupéré les sources de LUA …

    Lire la suite Compiler LUA avec CVI – Toutes les étapes expliquées