开发wince应用程序遇到的MmTimer.dll有关问题,希望做过相关开发的大神指点指点
开发wince应用程序遇到的MmTimer.dll问题,希望做过相关开发的大神指点指点
如题,因为读取数据及作图需求,要用到MmTimer.dll多媒体定时器。这个文件在wince系统的windows里面也有,大小7k。MmTimer.dll是从网上下载的,也是7k。网上下载的这个(http://blog.****.net/jane_sl/article/details/8019935)用于开发windows应用程序没问题,但是用于开发,wince应用程序就会出错:
错误 CS0012: 类型“System.ComponentModel.IComponent”在未被引用的程序集中定义。必须添加对程序集“System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”的引用。
但是System.dll版本是对的,目前想到的可能是用于开发windows应用程序的System.dll与用于开发wince应用程序的System.dll不一样,一看果然,前者的好像是451k,后者是99k。反正不是同一个东西。
各位有没有可以用于wince应用程序开发的MmTimer,或者是怎么用?可以用wince系统里面的MmTimer吗?
------解决思路----------------------
你不如直接改改 http://pinvoke.net/default.aspx/winmm/timeSetEvent.html 里面的例子好了,其实就是用 timeSetEvent 这个东西。wince 的话应该是把 DllImport 里面原来的 winmm.dll 改成 coredll.dll
------解决思路----------------------
.NET 上计时最准确的是 Stopwatch 类(它其实就是用了 QueryPerformanceCounter 这个API,我看 wince 上也有),不过它也要依赖操作系统和硬件,我不清楚 wince 系统和设备上它是否能够高精度工作,你可以试试。
你需要保证任务时长不能大于定时器间隔,不然会拖延下次触发的时间。我试验过PC桌面环境上的多媒体定时器,误差一般在 20 微秒内,最大不会超过 100 微秒,在系统高负载情况下也很稳定(不过毕竟不是实时系统,不可能绝对保证)。但是它只能设置间隔时间,没办法自己控制修正。
如题,因为读取数据及作图需求,要用到MmTimer.dll多媒体定时器。这个文件在wince系统的windows里面也有,大小7k。MmTimer.dll是从网上下载的,也是7k。网上下载的这个(http://blog.****.net/jane_sl/article/details/8019935)用于开发windows应用程序没问题,但是用于开发,wince应用程序就会出错:
错误 CS0012: 类型“System.ComponentModel.IComponent”在未被引用的程序集中定义。必须添加对程序集“System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”的引用。
但是System.dll版本是对的,目前想到的可能是用于开发windows应用程序的System.dll与用于开发wince应用程序的System.dll不一样,一看果然,前者的好像是451k,后者是99k。反正不是同一个东西。
各位有没有可以用于wince应用程序开发的MmTimer,或者是怎么用?可以用wince系统里面的MmTimer吗?
------解决思路----------------------
你不如直接改改 http://pinvoke.net/default.aspx/winmm/timeSetEvent.html 里面的例子好了,其实就是用 timeSetEvent 这个东西。wince 的话应该是把 DllImport 里面原来的 winmm.dll 改成 coredll.dll
------解决思路----------------------
.NET 上计时最准确的是 Stopwatch 类(它其实就是用了 QueryPerformanceCounter 这个API,我看 wince 上也有),不过它也要依赖操作系统和硬件,我不清楚 wince 系统和设备上它是否能够高精度工作,你可以试试。
你需要保证任务时长不能大于定时器间隔,不然会拖延下次触发的时间。我试验过PC桌面环境上的多媒体定时器,误差一般在 20 微秒内,最大不会超过 100 微秒,在系统高负载情况下也很稳定(不过毕竟不是实时系统,不可能绝对保证)。但是它只能设置间隔时间,没办法自己控制修正。