utiliser avec VC++ une dll prévue pour du VB

utiliser avec VC++ une dll prévue pour du VB - C++ - Programmation

Marsh Posté le 22-08-2006 à 13:46:08    

bonjour,
 
j'ai trouvé un SDK que j'aimerais beaucoup utiliser, ça s'appelle "Peace Music Engine", c'est pas très connu.
sur la doc ils ne parlent pas de visual c++, les exemples fournis avec sont au format visual basic  :o  
et les seuls fichiers fournis avec sont: PME.dll, PME.exp et PME.lib
 
est-ce qu'avec ça je peux me servir des fonctions de la dll ?


Message édité par xphanoo le 22-08-2006 à 14:05:09
Reply

Marsh Posté le 22-08-2006 à 13:46:08   

Reply

Marsh Posté le 22-08-2006 à 17:51:29    

Si tu n'as aucune déclaration des fonctions (prototypes), tu ne pourras rien en tirer.
Si ce n'est pas le cas, il te suffira de compiler ton programme avec le .lib qui aura pour effet de linker implicitement la dll d'où il a été produit.
 
 
PS : je serais toi, j'utiliserais plutot FMOD Ex qui gère les midis aussi bien sous Windows que sous Linux (softmidi intégré).

Reply

Marsh Posté le 22-08-2006 à 19:12:19    

j'avais pensé a fmod ex mais vu que je programme un plugin de petite taille pour une application, l'alourdir de la dll de 260 ko ça triplerais son poids ^^
 
avec j'ai un fichier CHM qui explique toutes les fonctions de la dll, mais j'arrive pas a m'en servir...
 
voila un extrait de la doc, la fonction pour initialiser:
http://tgfcenter.free.fr/IMG/pme.png
 
j'inclut PME.lib a mon projet vc++, je fais une ligne InitPeaceAudio(0, 48000)  mais le compilateur m'envoie une erreur 'InitPeaceAudio' : identificateur introuvable.
j'ai pas de fichier .h a inclure en début de fichier
 
quelqu'un a une idée ?


Message édité par xphanoo le 22-08-2006 à 19:14:21
Reply

Marsh Posté le 23-08-2006 à 00:53:38    

Fmod Ex est modulaire et lui même basé sur des plugins, sans ces plugins, il fait environ 120 ko.
Concernant ton problème, il faudra que tu protoype en C chaque fonction exportée en esperant que les libs n'ont pas été créé depuis VB car dans ce cas, c'est différents car il ne s'agit pas de DLL native pas de DLL ActiveX et il faudra utiliser le COM.

Reply

Marsh Posté le 23-08-2006 à 10:58:30    

oui, sauf que là la dll en question fait 20 ko  :pt1cable:  
en fait elle m'intéresse car elle permet de lire des MIDIS avec beaucoup d'options (notamment la possibilité de mettre une banque de son DLS personnalisée).
apparament FMOD le fait aussi donc je vais l'utiliser.
par contre j'aimerais que ceux qui n'utilisent pas les fonctions audio de mon plugin ne soient pas obligés d'inclure la DLL à leur jeu (le plugin que je fait c'est pour un logiciel de création de jeux), quelqu'un m'a dit qu'il fallait utiliser DLLImport au moment où j'utilise une fonction audio, mais il suffit de faire un DLLImport vers fmod.dll et c'est bon je peux utiliser ses fonctions ? ça me parait un peu trop simple...


Message édité par xphanoo le 23-08-2006 à 10:59:00
Reply

Marsh Posté le 24-08-2006 à 00:08:41    

Tu n'as pas le droit d'inclure la dll fmod ex statiquement, problème de license.
Si tu veux inclure une DLL, il te faudra l'inclure en tant que ressource et d'utiliser FindResource + LoadResource + LockResource pour récupérer la dll en ram et l'écrire dans un fichier puis lire dynamiquement chaque fonction (loadlibrary+getprocadress).

Reply

Marsh Posté le 24-08-2006 à 11:00:12    

ah bon ? je comprends pas trop pourquoi ils ne veulent pas qu'on "l'inclue statiquement"... ça change pas l'utilisation de la dll....

Reply

Marsh Posté le 24-08-2006 à 15:51:43    

Non mais ça leur permet de savoir si on utilise leur dll sans qu'ils se prennent la tête car cette lib est commerciale mais gratuite pour des projets perso gratuits.
Je peux les comprendre, on m'a déja fait le coup avec une de mes dll (en gpl en plus).

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed