DSound Problem
-
Hi,
mein code sieht etwa so aus:
struct SoundBuffer
{
BOOL bBufferStatus;
LPDIRECTSOUNDBUFFER lpDSBuffer;
};void SetzeLautstaerke(SoundBuffer *Buffer, int volume)
{
Buffer->lpDSBuffer->SetVolume(volume);
};binde ich diesen Code direkt in meine Anwendung ein und benutze ihn
Funktioniert er ohne Fehler - packe ich jedoch das ganze in eine
DLL in etwa so:struct __declspec(dllexport) SoundBuffer
{
BOOL bBufferStatus;
LPDIRECTSOUNDBUFFER lpDSBuffer;
};void __declspec(dllexport) SetzeLautstaerke(SoundBuffer *Buffer, int volume)
{
Buffer->lpDSBuffer->SetVolume(volume);
};dann funktioniert der Aufruf auf einmal nicht mehr
hat jemand eine Ahnung warum das so ist?
-
Warum machst Du keine Klasse daraus?
Hast Du die Funktion in der Anwendung mit __declspec(dll***im***port) deklariert? Am besten benutzt man ein Makro dafür, das entweder importiert oder exportiert - je nach dem, ob man die DLL kompiliert (export) oder ein Programm, das die DLL verwendet (import).
-
> Warum machst Du keine Klasse daraus?
es ist eine Klasse - der eigentliche Code sieht auch anders aus - aber ich wollte es mal auf das wesentliche (mein Problem) beschränken
warum geht die Funktion in der DLL nicht und bei direkter Einbindung in den Programmcode schon - woran könnte das liegen?
-
Ich habe Dir doch einen Hinweis gegeben. Wie sieht's damit aus?
-
Habe eine zweite Testanwendung geschreiben, die die dll benutzt und bei dieser Testanwendung funktioniert der Aufruf SetzteLautstaeke()
nja damit steht fest das ich mich bei der Fehlerquelle doch geirrt habe und unnütz diesen Thread eröffnet habe - doch ich hing schon einige Tage verzweifelt an diesem Problem - jetzt weiß wenigstens das es an etwas anderem liegen muss