.Net Micro Framework研究—模拟器直接运行MF程序

简介: 既然VS2005能启动运行,我想我们也可以,唯一不同的是模拟器加载的参数不同而已

上次用MF做了一个Windows桌面,感觉还不错,所以就想做一做如俄罗斯方块、贪吃蛇之类的小游戏,不过每次用模拟器运行MF程序,都需要打开VS2005的源码程序,然后单击启动。VS2005是个庞大的家伙,启动它至少要半分钟,所以很是麻烦。模拟器有没有可能直接运行MF程序啊(或者说不需安装VS2005及MF开发包,在其它windows上仅借助模拟器就可以运行)?就像一些游戏模拟器一样直接加载相应的文件就可以使游戏运行起来。

既然VS2005能启动运行,我想我们也可以,唯一不同的是模拟器加载的参数不同而已。
这是VS2005启动模拟器时候的命令行参数:

CommandLine = "C:/Program Files/Microsoft .NET Micro Framework/v2.0.3036/Tools/Microsoft.SPOT.Emulator.Sample.SampleEmulator.exe" "/waitfordebugger" "/load:C:/Program Files/Microsoft .NET Micro Framework/v2.0.3036/Assemblies/Microsoft.SPOT.TinyCore.pe" "/load:C:/Program Files/Microsoft .NET Micro Framework/v2.0.3036/Assemblies/Microsoft.SPOT.Hardware.pe" "/load:D:/SELF/MF/YFWinMF/YFWinMF/bin/Release/YFWinMF.pe" "/load:C:/Program Files/Microsoft .NET Micro Framework/v2.0.3036/Assemblies/Microsoft.SPOT.Graphics.pe" "/load:DC

根据这个信息,我做了一个批处理文件(MF.bat),内容如下:

Microsoft.SPOT.Emulator.Sample.SampleEmulator.exe "/load:C:/Program Files/Microsoft .NET Micro Framework/v2.0.3036/Assemblies/Microsoft.SPOT.TinyCore.pe" "/load:C:/Program Files/Microsoft .NET Micro Framework/v2.0.3036/Assemblies/Microsoft.SPOT.Hardware.pe" "/load:C:/Program Files/Microsoft .NET Micro Framework/v2.0.3036/Assemblies/Microsoft.SPOT.Graphics.pe" "/load:YFWinMF.exe"

注意,我们去掉了"/waitfordebugger"参数,此外最后一个"/load:DC参数我也直接去掉了。此外YFWinMF.exe程序就是VS2005编译后的MF的可执行文件。
运行该批处理试一下,哈!模拟器可以单独启动并且开始运行了YFWinMF.exe程序了。下一步我们要对模拟器进行移植(需要提醒的是,由于模拟器也是用.Net 2.0开发的,所以windows试验平台至少要安装.Net 2.0)。
经过测试发现,模拟器需要如下文件方可移植成功。
image.png

此外还需要这些核心文件:
image.png

很让人不解的是,模拟器核心库必须要求这些文件在“C:/Program Files/Microsoft .NET Micro Framework/v2.0.3036/Assemblies/”目录,也就是说我上面的批处理文件的路径必须与此一样(也可以不一样,不过C:/Program Files/Microsoft .NET Micro Framework/v2.0.3036/Assemblies/目录下也必须存在这些文件),否则就提示**.pe文件不存在。为了便于移植,我又编写了一个批处理文件(init.bat),可以方便地创建C:/Program Files/Microsoft .NET Micro Framework/v2.0.3036/Assemblies/目录及下面的文件,内容如下:

md "C:/Program Files/Microsoft .NET Micro Framework/v2.0.3036/Assemblies"
copy *.* "C:/Program Files/Microsoft .NET Micro Framework/v2.0.3036/Assemblies"

MF用户程序有三个文件组成,YFWinMF.exe YFWinMF.exe.manifest YFWinMF.pe。
好了,我们准备工作就绪,把相关文件拷贝到其它机器(windows 2000以上,安装了.Net 2.0),先执行我的Init.bat批处理文件,建立Assemblies文件,然后再执行MF.bat批处理文件。
OK,成功!
模拟器的功能还可以进一步扩展,如修改LCD的分辨率(颜色数目前仅支持16位,设置其它值会有问题),这样我们的模拟器就像PPC一样,也可以横竖屏切换了(这个功能我后续会做),下图就是修改LCD分辨率后运行的效果图:
 image.png

此外在绘图时,还有一点需要注意,MF的窗体类没有Refresh函数(用UpdateLayout命令不好使),这样在配合按键时会显得很迟钝(原先我还以为是模拟器的性能问题呢),经过试验,我自定义了一个Refresh函数,代码如下:

      //窗体刷新
      private void Refresh()
      {
         this.Left = this.Left;
          //this.UpdateLayout();  
}

修改后,那响应真叫一个棒。OK,以后的工作有的做了,各种基于MF的小游戏和小应用就应该源源不断的出来了。 

相关文章
|
5月前
|
API C++ Windows
Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法
本文介绍Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法,提供官方下载链接与系统修复工具使用指南。
1177 2
|
5月前
|
开发框架 安全 .NET
Microsoft .NET Framework 3.5、4.5.2、4.8.1,适用于 Windows 版本的 .NET,Microsoft C Runtime等下载
.NET Framework是Windows平台的开发框架,包含CLR和FCL,支持多种语言开发桌面、Web应用。常用版本有3.5、4.5.2、4.8.1,系统可同时安装多个版本,确保软件兼容运行。
1170 0
Microsoft .NET Framework 3.5、4.5.2、4.8.1,适用于 Windows 版本的 .NET,Microsoft C Runtime等下载
|
6月前
|
C++
提示缺少.NET Framework 3.5 安装错误:0x80070002、0x800F0950\0x80004002
.NET Framework常见问题及解决方法汇总,
764 0
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
543 5
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
575 0
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
328 7
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
334 0
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
274 0
|
开发框架 前端开发 安全
ASP.NET MVC 如何使用 Form Authentication?
ASP.NET MVC 如何使用 Form Authentication?
449 0