WinCE 录音程序API调用WaveInOpen() 出现异常:NotSupportedException ,哪会专家能帮帮忙

xinyun80 2009-03-19 11:01:18
[DllImport("winmm.dll")]
public static extern int waveInOpen(out IntPtr hWaveIn, int uDeviceID, WaveFormat lpFormat, WaveDelegate dwCallback, int dwInstance, int dwFlags);
上面是在Windows系统下运行可以正常录音

以下是在WinCE系统下的API调用
[DllImport("coredll.dll")]
public static extern int waveInOpen(out IntPtr hWaveIn, int uDeviceID, WaveFormat lpFormat, WaveDelegate dwCallback, int dwInstance, int dwFlags);
具体调用为: WaveNative.waveInOpen(out m_WaveIn, device, m_Format, m_BufferProc, 0, WaveNative.CALLBACK_FUNCTION);
参数m_BufferProc 是一个委托; WaveNative.CALLBACK_FUNCTION的值为:0x00030000;

用系统自带的模拟设备 WinCE.net调试 ,以及用pc机(WincE.net 4.2)测试都爆 NotSupportedExcetion 这个异常



有两个疑问:
1,是不是CE系统不支持这个函数调用
2,函数调用时参数出错

网上找了好多这方面的资料,没有得到正确的答案,请求专家详解,分数不够可以再加,先谢谢了
...全文
461 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaomiyinerzhou 2009-05-13
  • 打赏
  • 举报
回复
你的问题主要就是平台调用过程中的函数声明和数据封送问题。

如果你想系统学习如何进行数据封送,我推荐你阅读刚刚出版的新书:《精通.NET互操作P/Invoke,C++Interop和COM Interop》,这本书的第1,2,3章详细介绍了P/Invoke。尤其是第2章“数据封送”详细介绍了平台调用中的数据封送过程,非常详细,我就是读完后才搞清楚平台调用中的封送处理。


该书的官方网站:
www.interop123.com

豆瓣网信息:
http://www.douban.com/subject/3671497/
xinyun80 2009-03-19
  • 打赏
  • 举报
回复
时间很紧啊,自己顶啊
自己找了些答案,还没确定: CF1.0好像不支持 回调函数,CF 2.0才支持
三生Omier 2009-03-19
  • 打赏
  • 举报
回复
帮顶

http://download.csdn.net/down/796318/abcdefg007
cppfaq 2009-03-19
  • 打赏
  • 举报
回复
wince录音简单例子
http://search.download.csdn.net/source/528708
xiaoyuzi 2009-03-19
  • 打赏
  • 举报
回复
cf1.0确实不支持,1.0支持P/Invoke,但是不支持回调委托。CF - Compact framework,意思是精简框架,很多api不支持也很正常。

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧