b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

Windows 声音处理编程(基于winmm.dll)(1)

电脑杂谈  发布时间:2016-05-18 09:00:43  来源:网络整理

你是否正在寻找关于winmm.dll的内容?让我把最内涵的东西奉献给你:

本学期选了一门《声音识别技术》,第一个作业,教授让编写一个程序,获取声卡数据,并存储成本地文件,要求使用winmm.dll中的函数。基于此,查阅了相关资料和winmm.dll的API,实现了程序,符合要求,在此留个记录。

首先,对winmm.dll的API需要有个大致的了解,刚好,在百度百科中有winmm.dll词条,可以先查阅一下,大致知道这个dll的作用,参考:

第二步,为了查询某个函数的使用方法,可以在Windows Dev center里搜索函数的声明(MSDN中也能查到),例如我想查midiInGetNumDevs函数的使用办法,可以在(v=vs.85).aspx得到。

第三步,由于我的程序是C#做的,而midiInGetNumDevs函数是用C写的,这存在C和C#数据类型匹配的问题。网上有一个比较方便的小工具,Pinvoke.net插件,关于Pinvoke.net的说明,网站上这样说:PInvoke.net is primarily a wiki, allowing developers to find, edit and add PInvoke* signatures, user-defined types, and any other information related to calling Win32 and other unmanaged APIs from managed code (written in languages such as C# or VB.NET). Pinvoke.net是一个wiki,开发人员可以查询,编辑或者增加PInvoke 的特征(一些函数API),用户自定义类型和其它调用Win32和非托管的API的相关信息,并被C# 和VB所使用。网页地址:同时可以下载插件安装在Visual Studio 上,便于开发,。

第四步,在C#中创建dll中对应的结构体。例如,当使用midiInGetDevCaps时,dll中定义的接口为:MMRESULT midiInGetDevCaps(UINT_PTR uDeviceID,LPMIDIINCAPS lpMidiInCaps,UINT cbMidiInCaps); 使用Pinvoke,获得的对应C#函数写法为:[DllImport("winmm.dll", SetLastError = true)]private static extern uint midiInGetDevCaps(uint uDeviceID, out [MIDIINCAPS] caps,uint cbMidiInCaps); ,其中MIDIINCAPS是所要重新构造的结构体,同样,通过Pinvoke可以查询到在C#中对应的结构体写法:。

通过以上四个步骤,就能在C#中调用winmm.dll中大部分的函数了。以上是准备工作,接下来的日志中继续介绍详细开发的过程。

以上就是关于winmm.dll的全部内容,相信你一定会非常满意。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shenmilingyu/article-5359-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...