Règles du forum

Le langage Ada uniquement, pas les compilateurs. Les questions de sémantique et de langage et les questions techniques liées à une application en particulier, son deux choses différentes. Si nécessaire, un forum sur GNAT et les autres compilateurs, tel JanusAda, sera ouvert.

Auteur Message
Beau Parleur
Avatar de l’utilisateur
Bonjour,
Bonjour Hibou !
j'envisage de porter à présent mon programme sur MS Windows.

le problème, c'est la bibliotèque MIDI.

la bibliothèque portmidi-dev utilisée apporte beaucoup de contrainte dans la chaine de production du logiciel.

C'est pourquoi je réfléchie à une implementation Win32. Mais fortes ressources temporelle puisqu'il me faudra l'année encore pour refaire le nécessaire.

Qu'en penser ?
Profil
Administrateur
Avatar de l’utilisateur
Zut, j’allais justement répondre PortMIDI, spontanément. J’ai un peu programmé l’API MIDI de Windows, mais ça remonte à loin.

Sinon, quelles sont les contraintes de PortMIDI qui poseraient problème ?
Profil
Administrateur
Avatar de l’utilisateur
Un bon point d’entrée dans les API Windows pour le MIDI : About MIDI (msdn.microsoft.com).
Profil
Beau Parleur
Avatar de l’utilisateur
Le problème c'est le taf à faire pour l'utilisateur.
Installer et mettre à jours.
Merci beaucoup pour le document, je vais commencer par la alors.
Profil
Administrateur
Avatar de l’utilisateur
Pour la mise à jour, tu peux peut‑être omettre temps que ça semble assez stable. Cette librairie est ancienne, j’imagine qu’elle est stable, surtout que le MIDI est lui‑même stable.
Profil
Beau Parleur
Avatar de l’utilisateur
ouais, mais le truc c'est plutôt l'install, qui nécessite de compiler du C++ avec du java, etc... Bref le truc hyper lourd'ingue.

En plus, après si je doit interfacer avec du java ou du c++ ça va pas être de la tarte.
Profil
Administrateur
Avatar de l’utilisateur
Pourtant PortMIDI est une librairie C, c’est bizarre … Ou alors je crois à tord.
Profil
Beau Parleur
Avatar de l’utilisateur
yes.

C'est bien du C d'un sens.

J'ai réussie à produire mon programme sur Windows avec une petite modif mais rien à voir avec le midi, et j'ai lié -largs -L. pmjni.dll

Et ça focntionne. C'est super. C'est bête comme tout.

Merci Hibou !
Profil
Beau Parleur
Avatar de l’utilisateur
Bonjour, Bonjour Hibou.


Je reviens ici, avec un petit problème.
Je compile avec la ligne suivante qui produit l'exécutable mais à l'exécution ne trouve pas la bibliothèque pmjni :
Citation : 
gnatmake -O3 -D obj src/main.adb -aIsrc/lib -aIPragmARC -o bin/ultrason -aIc:\GtkAda\include\gtkada -aOc:\GtkAda\bin -largs -Lc:\GtkAda\include\gtkada -Lc:\GtkAda\lib "C:\Program Files (x86)\PmDefaults\pmjni.dll"


A l'exécution donc, une boite de dialogue s'ouvre en me disant que réinstaller le programme peut régler le problème.

Merci pour votre aide.
Profil
Administrateur
Avatar de l’utilisateur
En supposant que la librairie est bien présente quelque, ça dépend si c’est à l’execution depuis Windows ou Linux.

Je suppose depuis Windows, alors je dirais que si tu sais où est la librairie, il peut suffire d’essayer de la copier dans le répertoire de l’executable. Le chemin de recherche est le même pour les DLL que pour les programmes, et il inclut le répertoire courant de l’application. Au démarrage, ce répertoire courant est normalement le répertoire dans lequel se trouve l’application (mais pas toujours il me semble).

Si c’est depuis Linux, il faut modifier quelque chose dans le fichier ELF pour indiquer le chemin de la librairie, le RPATH. Il existe un utilitaire nommé patchelf qui permet de le faire.

À moins qu’il ne s’agisse d’un problème de version de la librairie …
Profil