Проблема состоит в том, что это решение я нигде не нашёл. Мне нужно реализовать немедленное завершение функции во время, допустим, проигрывания мелодии и сделать это, допустим, с помощю потоков (мне надо, чтобы программа не завершалась, а просто прекратила выполнение функции, и пошла далее по строкам кода).
Вот пример кода:
#include <Windows.h>
#include <iostream>
#include <thread>
using namespace std;
class Player {
public:
void SoundPlay() {
PlaySoundA(TEXT("lol.wav"),0,SND_SYNC);
}
};
void cdecl StopPlayer(Player* p) {//остановка музыки
Sleep(5000);//мелодия проигрывает 5 секунд
delete p;//функция остается в стеке вызова и выполняется до конца,удаление объекта ничего не дает
//SendMessageA(GetForegroundWindow(),WM_CLOSE,0,0);//работает,но завершает программу,а надо чтобы не завершало
}
int main() {
Player* p = new Player;
thread t(StopPlayer,p);
t.detach();
p->SoundPlay();
system("pause");
return 0;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Мне дали доработать приложение написанное с использованием QtВ приложении есть некий диалог унаследованный от QDialog