Hiho!
Ich baue mir gerade eine Engine zusammen und fange da beim Sound an, denn der ist ja noch verhältnismäßig klein.
Nun gibt es ein kleines Problem, als es um den Sound geht. Ich binde also in meinem DLL-Projekt die SFML ein, schreibe erstmal das Alles mit der Musik, noch nicht die Sound-Effekte.
Nun kommt da aber so ein toller Compilerfehler heraus, es lässt sich debuggen, auch im release-Modus. Aber die Warnung beunruhigt mich, dass ein Teil/die ganze DLL nicht funktioniert.
Kann mal jemand drüber schauen? Oder mir eine Möglichkeit sagen um sich "die eigene Engine ohne SFML" schreibt? ;] Aber das wäre vielleicht für manche Bereiche noch etwas zu hoch hinaus gegriffen....
Fehler:
1>------ Erstellen gestartet: Projekt: Audio, Konfiguration: Debug Win32 ------
1> Audio_Datei.cpp
1>c:\users\matthis\desktop\audio\audio\audio_header.hpp(16): warning C4251: 'lwtAudio::Audio::m': class 'sf::Music' erfordert eine DLL-Schnittstelle, die von Clients von class 'lwtAudio::Audio' verwendet wird
1> c:\users\matthis\desktop\time of war\sfml\sfml-1.6\include\sfml\audio\music.hpp(47): Siehe Deklaration von 'sf::Music'
1> Bibliothek "C:\Users\Matthis\Desktop\Audio\Debug\Audio.lib" und Objekt "C:\Users\Matthis\Desktop\Audio\Debug\Audio.exp" werden erstellt.
1> Audio.vcxproj -> C:\Users\Matthis\Desktop\Audio\Debug\Audio.dll
========== Erstellen: 1 erfolgreich, Fehler bei 0, 0 aktuell, 0 übersprungen ==========
Code:
Alles anzeigen
Alles anzeigen
Alles anzeigen
Danke!
MfG
Check
Ich baue mir gerade eine Engine zusammen und fange da beim Sound an, denn der ist ja noch verhältnismäßig klein.
Nun gibt es ein kleines Problem, als es um den Sound geht. Ich binde also in meinem DLL-Projekt die SFML ein, schreibe erstmal das Alles mit der Musik, noch nicht die Sound-Effekte.
Nun kommt da aber so ein toller Compilerfehler heraus, es lässt sich debuggen, auch im release-Modus. Aber die Warnung beunruhigt mich, dass ein Teil/die ganze DLL nicht funktioniert.
Kann mal jemand drüber schauen? Oder mir eine Möglichkeit sagen um sich "die eigene Engine ohne SFML" schreibt? ;] Aber das wäre vielleicht für manche Bereiche noch etwas zu hoch hinaus gegriffen....

Fehler:
1>------ Erstellen gestartet: Projekt: Audio, Konfiguration: Debug Win32 ------
1> Audio_Datei.cpp
1>c:\users\matthis\desktop\audio\audio\audio_header.hpp(16): warning C4251: 'lwtAudio::Audio::m': class 'sf::Music' erfordert eine DLL-Schnittstelle, die von Clients von class 'lwtAudio::Audio' verwendet wird
1> c:\users\matthis\desktop\time of war\sfml\sfml-1.6\include\sfml\audio\music.hpp(47): Siehe Deklaration von 'sf::Music'
1> Bibliothek "C:\Users\Matthis\Desktop\Audio\Debug\Audio.lib" und Objekt "C:\Users\Matthis\Desktop\Audio\Debug\Audio.exp" werden erstellt.
1> Audio.vcxproj -> C:\Users\Matthis\Desktop\Audio\Debug\Audio.dll
========== Erstellen: 1 erfolgreich, Fehler bei 0, 0 aktuell, 0 übersprungen ==========
Code:
Quellcode
- Audio Datei.cpp:
- #include "Audio_Header.hpp"
- //File initialisieren
- DLL_AUDIO_API void lwtAudio::Audio::Init(sf::Music m)
- {
- //File Laden
- if(!m.OpenFromFile("music\\music.ogg")) // Hinweis: Wird noch zu einem String, musste Programm neu starten.... '-.-
- exit (3);
- }
- //Play
- DLL_AUDIO_API void lwtAudio::Audio::Play(sf::Music m)
- {
- //File abspielen
- m.Play();
- }
- //Stop
- DLL_AUDIO_API void lwtAudio::Audio::Stop(sf::Music m)
- {
- //File stoppen
- m.Stop();
- }
- //Pause
- DLL_AUDIO_API void lwtAudio::Audio::Pause(sf::Music m)
- {
- //File pausieren
- m.Pause();
- }
Quellcode
- Audio Header.hpp:
- #include "Audio.hpp" //Hauptdatei einbinden
- #include <SFML\Audio.hpp> //SFML-Audio
- #include <SFML\System.hpp> // SFML-System
- //Starten des Namepaces "Audio"
- namespace lwtAudio
- {
- class DLL_AUDIO_API Audio
- {
- public:
- void Init (sf::Music m);
- void Play (sf::Music m);
- void Stop (sf::Music m);
- void Pause(sf::Music m);
- private:
- sf::Music m;
- };
- }
Quellcode
Danke!
MfG
Check
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Checkmateing ()