Hintergrund Music in C++ (Console)
-
Hallo ich habe mit windows.h und Beep ein music script gemacht und will es jetzt in mein Spiel einfügen
Wie mache ich das dass ich den code im hintergrund ausführe
Danke an alle Antworter
-
Da du unter Windows programmierst, entweder mit CreateThread oder du verwendest irgend eine Thread Biobliothek, ist dir überlassen...
-
Kann jemand mir sagen wie ich das mache mit beispielcode

-
Siehe Hier. (Mit Beispielen)
-
Mit neueren Compilern sind Threads auch in der Standardbibliothek. Siehe hier.
-
Kann man mir bitte einen beispiel code schreiben
wo werden der normalen code ablaufs mit beep() gereusche gemacht werden
-
#include <thread> #include <Windows.h> void music() { while(1) { Beep(100, 100); Beep(200, 200); Beep(300, 300); Beep(400, 400); Beep(500, 500); } } int main(int argc, char *argv[]) { std::thread musicThread(music); musicThread.join(); }
-
Bei mir Kommt die fehler meldung
chen Anzihen CAGE\main.cpp||In function 'int main(int, char**)':|
chen Anzihen CAGE\main.cpp|105|error: 'thread' is not a member of 'std'|
chen Anzihen CAGE\main.cpp|105|error: expected ';' before 'musicThread'|
chen Anzihen CAGE\main.cpp|106|error: 'musicThread' was not declared in this scope|
chen Anzihen CAGE\main.cpp|24|error: too few arguments to function 'int main(int, char**)'|
chen Anzihen CAGE\main.cpp|220|error: at this point in file|
||=== Build finished: 5 errors, 0 warnings ===|

-
Welche Entwicklungsumgebung bzw. Compiler nutzt du?
-
Code Blocks mit gcc
und ja ich habe c++ 0x aktiviert(denke ich zumindest)
und warum kein visual studio(es zeigt Ungültige Lizenzdaten. Eine Neuinstalation ist ervorderlich an)
-
GCC unterstützt unter Windows std::thread noch nicht.
Du musst entweder auf Visual Studio, WinAPI, Boost.Thread, Linux, oder einen Patch wie diesen ausweichen:
http://tehsausage.com/mingw-std-thread-gcc-4-7
-
...
-
ich würde die WinApi benutzen oder die anderen aber das patch verstehe ich nicht
Kann man mir sagen wie den ich binn nicht so gut in Englisch
Ich brauche eine ANLEITUNG
-
...
-
chen Anzihen CAGE\main.cpp||In function 'int main(int, char**)':|
chen Anzihen CAGE\main.cpp|110|error: 'nullptr' was not declared in this scope|
chen Anzihen CAGE\main.cpp|110|error: 'tetris' was not declared in this scope|
||=== Build finished: 2 errors, 0 warnings ===|
-
Dann kommen wir doch nochmal hierauf zu sprechen:
Alexmitter schrieb:
und ja ich habe c++ 0x aktiviert(denke ich zumindest)
Was heißt, "du denkst"? Ist es nun aktiviert oder nicht?
Und welche GCC-Version benutzt du?
-
...
-
Sory das ich noch was frage aber
bei mir kommt ein fehler
[chen Anzihen CAGE\main.cpp||In function 'int main()':|
chen Anzihen CAGE\main.cpp|110|error: invalid conversion from 'void ()()' to 'DWORD ()(void*)'|
chen Anzihen CAGE\main.cpp|110|error: initializing argument 3 of 'void* CreateThread(_SECURITY_ATTRIBUTES*, DWORD, DWORD ()(void), void*, DWORD, DWORD*)'|
||=== Build finished: 2 errors, 0 warnings ===|
]
Brauche hilfe
-
Deine Threadfunktion muß einen "void *" als Parameter entgegennehmen und DWORD zurückgeben.
-
Wie Mache ich das
void music()
{
while(true)
{
Beep(100, 100);
Beep(200, 200);
Beep(300, 300);
Beep(400, 400);
Beep(500, 500);
}
}
Das ist der Code