-
Choix d'un API pour C++
Bonjour.
Alors voici le topo:
- Je veux réaliser sur mon temps libre une petite appli windows.
- Cette appli windows aura essentiellement pour but de lire la mémoire d'une appli tierce (un autre processus qui tourne sur le même OS), et de jouer des sons dans un certain ordre (depuis des fichiers .wav) en fonction de ce qu'elle a lu. Ca semble simple a première vue, mais la partie "lire la mémoire d'un appli tierce en train de tourner sur le même OS" peut réserver des surprises... Je sais que ça se fait, pour prendre un exemple de gamer: Dwarf Therapist le fait pour Dwarf Fortress. :mrgreen: (et est d'ailleurs programmé en C++ si j'en crois: https://code.google.com/p/dwarftherapist/ )
- C'est d'ailleurs pour info une appli pour wargamer que je veux faire ^^ Il s'agit de traduire les "rapport tactiques" (unité X bouge de Y en Z, subit un tir d'artillerie, engage l'ennemi...) en trafic radio "réaliste" ("It is Vaudoo, we are under heavy ennemy fire at grid 1-2-3-4!") pour un wargame ^^ J'ai les fichiers audio dont j'ai besoin pour ça.
- Ca fait facilement +10 ans que je n'ai pas programmé en C++. ^^ La dernière fois c'était sous visual studio 6 si ma mémoire est bonne, je réalisait des activeX en C++ pour les utiliser dans une appli VB derrière pour faire l'UI windows. (cadre professionnel)
Pourquoi C++/VB, ben parce que je connais(sait) ça, de l'assembleur, du cobol/pacbase, et quelques langages obscurs de programmation de puces électroniques, c'est à peu près tout.
Auriez-vous quelque chose à me conseiller en particulier comme API? J'ai cru voir qu'il y avait un "studio express C++" libre comme l'a été VS6 en son temps, mais si vous avez quelque conseils et/ou noms de DLL sous la main pour ce que je veux faire...
Merci d'avance! ^^
-
En ce cas, le plus simple, je crois, c'est d'aller regarder ce qui a été utilisé dans dwarf therapist.
Attention toutefois, cette pratique peut être vue comme de la triche (généralement rapportée comme map-hack)
-
L'objectif dans mon cas est d’apporter de l'immersion par le trafic audio en live en plus de ce qui s'affiche en bas de l'écran. Les fichiers audios que j'ai sont ceux tirés de "Enemy engaged", une (ancienne maintenant) simulation d'hélicoptères de combats qui avait un trafic radio totalement dynamique/modulable géré de cette façon en fonction des actions sur la carte de campagne et qui m'avait beaucoup impressionné ^^
L'éditeur avait relâche les sources de ce jeu-là en 2003.
Tu as raison, je vais voir si je peux contacter les devs de Dwarf Therapist. Mais si vous avez d'autres "tips", n'hésitez pas ^^.
-
Le site te donne accès directement aux sources (menu source > browse) ou à un git clone.
-
Ach so, effectivement, je ne sais pas m'en servir et n'avais pas cliqué sur le lien "browse", bien vu, merci! ^^
J'ai déjà envoyé mon mail du coup. Bah ce n'est pas un mal, et j'ai du coup un peu de lecture pour essayer de comprendre ^^
-
Pour info, l'API qu'ils utilisent dans le cadre du projet Dwarf Therapist est donc QTCreator.
http://fr.wikipedia.org/wiki/Qt_Creator
Ca se tente. Je pense que je vais partir là dessus pour commencer ^^
-
Kamoulox, QTCreator c'est un EDI. :weird:
-
Ca doit être Qt, mais je ne vois quand même pas le rapport entre Qt (interface graphique) et accéder à la mémoire d'un autre processus.
-
Ben écoutes, faut croire que je confonds, hein! Du respé pour les vieux ! :calim2:
Blague à part, je cherche donc bien à la fois un environnement de dev' (EDI si j'ai bien suivi) et les bibliothèques pour me permettre de faire ce que je veux (API cette fois? Même si c'est peut être abusif ici)
Le rapport c'est juste que comme le projet dont on parle et dont j'ai téléchargé les sources a été réalisé sous l'EDI Qt. Je me suis donc dit que télécharger Qt serait plus pratique pour l'importer et le lire tranquillement.
-
Oulà, ça part dans tout les sens, faudrait commencer par cadrer le vocabulaire :
- IHM (interface Homme Machine), c'est fonction de l'OS, mais des Bibliothèque Graphiques permettent d'avoir le même rendu sur plusieurs OS (Qt est une des ces bibliothèque graphiques)
- Bibliothèque Graphiques : bibliothèque chargée d'afficher des choses à l'écran en utilisant les routines graphiques de l'OS (Qt, MFC, GDI, ...)
- API : Application Programming Interface, interface de programmation, il ne faut pas confondre avec IHM. C'est on concepteur du jeu de la fournir. Elle est généralement en C, pas en C++.
- IDE, Intergrated Developement Environnement, c'est un outil qui facilite grandement l'utilisation des différents outils de développement, comme le compilateur, l'éditeur de lien, le packager, etc...
Qt est une bibliothèque graphique, QtCreator est un IDE spécialisé pour Qt.
Visual Studio Community Edition est un IDE, gratuit, fourni par M$, spécialisé pour Windows, mais qui peut utiliser toutes les bibliothèques graphiques tournant sous Windows.
Pour ce genre de développement, il vaut mieux utiliser l'API possiblement offerte pas les développeurs du jeu plutôt que de fureter en mémoire comme un gros saligot.
-
Merci pour le vocabulaire ^^ et les pistes!
Effectivement, en fouillant les api windows et processus, je peux récupérer un pointeur sur le début de la mémoire du processus, et ensuite y aller comme une brutasse pour récupérer les chaines de caractères qui m'interressent.
Mais je vais voir pour suggérer aux dev's cette histoire d'API qui m'a l'air plus pratique ^^