2008-12-26 7 views
1

Ok, donc je créé un fichier RC:BASSMOD_MusicLoad chargement de ressources dans Delphi

Chipas RCDATA "chiptune.xm"

et compilé à RES.
Ajout de ce RES, BASSMOD.pas et BASSMOD.dll à mon répertoire de projet. Maintenant, j'ai besoin de jouer ce chiptune à partir de la ressource. Comment puis-je le faire?

J'ai essayé, mais ça ne charge pas.

procedure play; 
begin 
MyResource:=FindResource(HInstance, 'Chipas', RT_RCDATA); 
if MyResource=0 then 
begin 
    showmessage('chiptune error'); 
    Exit; 
end; 
MyGlobal:=LoadResource(HInstance,MyResource); 
pResource:=LockResource(MyGlobal); 
ResSize:=SizeOfResource(HInstance,MyResource); 
    BASSMOD_MusicFree; 

    if BASSMOD_MusicLoad(false,pResource,0,0,BASS_UNICODE) then begin 
     BASSMOD_MusicPlay; 
    end 
    else Error('Can"t play the file'); 


FreeResource(MyGlobal); 
end;
+0

Et quelle erreur obtenez-vous? – Riho

+0

Les fonctions d'api win32 que vous utilisez ont des moyens de vous dire quel est le problème. Vérifiez si les valeurs renvoyées signalent une erreur et utilisez RaiseLastOSError (ou autres) pour voir quelle est cette erreur. –

Répondre

1

L'une des fonctions que vous appelez peut signaler une erreur. Vous devez vous assurer que chaque fonction que vous appelez ne signale aucune erreur. Consultez la documentation sur la façon dont ils signalent une erreur et utilisez des fonctions telles que RaiseLastOSError pour voir le message d'erreur. Cela pourrait vous aider à comprendre quel est le problème.

Également utiliser un éditeur de ressources pour voir si votre exécutable contient la ressource et voir ce que son nom ou son ID est.

Questions connexes