永发信息网

请问C的sound函数在哪里定义啊

答案:2  悬赏:80  手机版
解决时间 2021-03-11 17:05
  • 提问者网友:不要迷恋哥
  • 2021-03-11 05:00
用VC写了个控制声卡的程序,里面的sound,nosound,delay等函数貌似是在中定义啊,可是包含这个头文件后系统还是报错,说找不到这几个外部函数,请问有没有高手知道怎么回事啊
最佳答案
  • 五星知识达人网友:天凉才是好个秋
  • 2021-03-11 06:23
首先查看MSDN中说明,是否有这此函数,有,那这些函数在哪个头文件中,哪个类中等等.
不能只抄代码,
全部回答
  • 1楼网友:举杯邀酒敬孤独
  • 2021-03-11 07:18
函数: void delay(uint i) { 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并不是实时操作系统,因此对于太过精确的计时,还是无能为力的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯