扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
可能是DOS界面下的C没有驱动,不支持你的音箱。
吐鲁番网站建设公司创新互联,吐鲁番网站设计制作,有大型网站制作公司丰富经验。已为吐鲁番上1000家提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的吐鲁番做网站的公司定做!
另外频率不要过低(600Hz左右为宜),持续时间要稍长(1000ms以上)。
若仍不能解决,则也许是系统或编译器不支持的原因......
函数void sound(unsigned frequency);
以指定频率打开PC扬声器
nosound :关闭PC扬声器
原型为: void nosound(void);
delay 用于将程序的执行暂停一段时间(毫秒)
原型为:void delay(unsigned milliseconds);
如delay(5000)表示延迟5秒
sound()函数用于让pc喇叭发声,nosound()函数用于使正在发声的pc喇叭静音。要使程序中的发声的具体方法,是调用sound()函数并延迟一定时间,然后使用nosound()函数静音,具体语句实现方法举例如下:
sound(100);
delay(100);
nosound();
它们三个都在“dos.h”里面,
至于d(x,y,z)应该是程序员自己定义的函数,我没见过。
函数void sound(unsigned frequency);
以指定频率打开PC扬声器
nosound :关闭PC扬声器
原型为: void nosound(void);
delay 用于将程序的执行暂停一段时间(毫秒)
原型为:void delay(unsigned milliseconds);
如delay(5000)表示延迟5秒
sound()函数用于让pc喇叭发声,nosound()函数用于使正在发声的pc喇叭静音。要使程序中的发声的具体方法,是调用sound()函数并延迟一定时间,然后使用nosound()函数静音,具体语句实现方法举例如下:
sound(100);
delay(100);
nosound();
它们三个都在“dos.h”里面,
接你说的 连续的使用的话 可能是 产生一种或多种不同的警告音 也有可能就是有人在瞎玩 发出点声音 听听 总而言之 就是在 发音暂停之间调节
函数:
voiddelay(uinti)
{
while(i)i--;
}
这样的延迟设计很不好,因为受影响的因素太多。
首先就是机器的CPU频率,快的CPU执行i--这句的机器时间短,慢的机器就很慢。
其次是当前机器的负荷情况,负荷较重时,系统给当前进程分配的CPU时间少,执行这些语句的机会就少,延迟就增加了。
影响因素还有很多在此不再列举。
做延迟程序主要有以下几种方法:
1.定时器法
用CWnd::SetTimer()函数设置定时器,当定时时间到时发送WM_TIMER消息触发CWnd::OnTimer()函数,重载它把自己的代码放进去。
SetTimer()参数为毫秒,此方法定时不高,受系统负荷影响。
2.休眠法
调用系统API函数Sleep(2000);参数单位是毫秒,2000代表2秒。
此方法主要收到当前系统负荷的影响,定时不太准确
3.时刻比较法
定义两个CTime变量,一个用于记录起始时刻,另一个放在循环体中不断刷新当前时刻,并减去起始时刻,自己计算是否到时间了。
此方法因CTime变量只能获取秒级的时刻,且收到系统负荷影响,精度也较低。
4.CPU滴答查询法
利用两个API函数QueryPerformanceFrequency()和QueryPerformanceCounter()分别获取CPU的频率和CPU滴答数,依时刻比较法自己计算时刻差值。
因为CPU滴答数是等于CPU的机器周期的,所以是Windows系统里最最精确的计时方法了。现在的CPU主频都是GHz级的,因此理论上计时精度可以到纳秒。
只要系统负荷不太重,此法可用于极其精确的延时程序。
因为Windows并不是实时操作系统,因此对于太过精确的计时,还是无能为力的。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流