Hi,
Ich habe eine Klasse geschrieben die eine Funktion hat mit der es möglich sein soll per Parameter übergabe unterschiedliche Sounds zu laden. Das Probem ist das die Übergabe eines String Types nicht akzeptiert wird.
Hier ist der Klassenheader:
Und hier die Funktionen, die dazugehören:
Follgende Fehlermeldung bekomme ich:
Die Fehlermeldung bezieht sich auf diese Zeile:
Wie kann ich diesen Fehler umgehen, so dass es möglich ist per Parameterangabe zu bestimmen, welcher Sound geladen werden soll?
Ich habe eine Klasse geschrieben die eine Funktion hat mit der es möglich sein soll per Parameter übergabe unterschiedliche Sounds zu laden. Das Probem ist das die Übergabe eines String Types nicht akzeptiert wird.
Hier ist der Klassenheader:
Code:
#ifndef Sound_HPP
#define Sound_HPP
#include <SDL.h>
#include <SDL_mixer.h>
#include <stdlib.h>
#include <string>
using namespace std;
class CSound
{
Mix_Chunk *m_sound; //Pointer to our sound, in memory
int m_channel; //Channel on which our sound is played
void Load(string File);
void Play();
void Free();
};
#endif
Und hier die Funktionen, die dazugehören:
Code:
#include "Sound.hpp"
void CSound :: Load(string File)
{
//Load our WAV file from disk
m_sound = Mix_LoadWAV(File);
if(m_sound == NULL)
{
printf("Unable to load WAV file: %s\n", Mix_GetError());
}
}
void CSound :: Play()
{
//Play our sound file, and capture the channel on which it is played
m_channel = Mix_PlayChannel(-1, m_sound, 0);
if(m_channel == -1) {
printf("Unable to play WAV file: %s\n", Mix_GetError());
}
}
void CSound :: Free()
{
//Release the memory allocated to our sound
Mix_FreeChunk(m_sound);
}
Follgende Fehlermeldung bekomme ich:
Code:
--------------------Konfiguration: SMW_Engine_01 - Win32 Debug--------------------
Kompilierung läuft...
Sound.cpp
c:\program files\super mario engine\visual c 6.0 engine\smw_engine15\sound.cpp(6) : error C2664: 'SDL_RWFromFile' : Konvertierung des Parameters 1 von 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' in 'cons
t char *' nicht moeglich
Kein benutzerdefinierter Konvertierungsoperator verfuegbar, der diese Konvertierung durchfuehren kann, oder der Operator kann nicht aufgerufen werden
Fehler beim Ausführen von cl.exe.
SMW_Engine_01.exe - 1 Fehler, 0 Warnung(en)
Die Fehlermeldung bezieht sich auf diese Zeile:
Code:
m_sound = Mix_LoadWAV(File);
Wie kann ich diesen Fehler umgehen, so dass es möglich ist per Parameterangabe zu bestimmen, welcher Sound geladen werden soll?