Я пытаюсь создать программу на C ++, в которой я играю звуковой сигнал с частотой и продолжительностью по выбору пользователя.
Программа должна продолжить работу во время воспроизведения звукового сигнала.
Я понял, что для этого я должен использовать многопоточность, но у меня нет никакого опыта с этим.
Например, это простая программа, но я получаю сообщение об ошибке, когдаЯ использую _beginthread
:
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include <process.h>
using namespace std;
int freq = 0;
int sec = 0;
int mil = 0;
void beepTone(int freqq, int mill)
{
Beep(freqq, mill);
_endthread();
}
int main()
{
cout << "Frequency?" << endl;
cin >> freq;
cout << "Duration?" << endl;
cin >> sec;
mil = 1000 * sec;
_beginthread(beepTone(freq, mil), 0, NULL);
cout << "Test Threading";
return 0;
}
Аргумент типа "void (*) (int freqq, int mill)" несовместим с параметром типа "_beginthread_proc_type"
Я думаю, что смысл этой программы тестирования довольно ясен.
У меня есть код, который запускается, но в этом коде я не могу выбрать собственную частоту и длительность:
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include <process.h>
using namespace std;
void beepTone(void *arg)
{
Beep(1000, 3000);
_endthread();
}
int main()
{
_beginthread(beepTone, 0, NULL);
cout << "Test Threading";
cin.get();
return 0;
}
Этот проигрывает 1000 Гц в течение 3 секунд, продолжая программу.
Может кто-нибудь помочь мне с тем, как я могу сообщить ветке, какую частоту и длительность играть?