[转]Windows Mobile 开发常见问题集(一)

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: 转载自:http://www.csai.cn  1、Q:新建项目的时候选择哪个项目类型才能创建智能设备的应用程序?  A:在Visual Studio的新建项目对话框中选择Visual C#或者Visual Basic项目类型,选择智能设备模板,然后再选择相应的设备SDK,最后选择“Device Application”,就可以创建一个移动设备的应用程序了。

转载自:http://www.csai.cn 

 

1、Q:新建项目的时候选择哪个项目类型才能创建智能设备的应用程序?

  A:在Visual Studio的新建项目对话框中选择Visual C#或者Visual Basic项目类型,选择智能设备模板,然后再选择相应的设备SDK,最后选择“Device Application”,就可以创建一个移动设备的应用程序了。

2、Q:托管代码与本地代码有哪些区别?

  A:托管代码是指使用.NET Compact Framework开发的程序代码,可执行文件被编译成IL,执行时需要有.NET的运行时环境。而本地代码指用C++等语言开发的程序代码,可执行文件被编译成与CPU指令集有关的机器码,可以直接运行。 

3、Q:能不能简要介绍一下Magneto里面对OTA和MMS的支持?

  A:Magneto对OTA有很好的支持,SDK文档的通讯部分中,有针对OTA的专门介绍。MMS的应用程序基本都是由第三方开发的,因为MMS是基于WAP协议的,而Magneto本身对WAP的支持也很好,具体的协议也可以在SDK文档里找到。

4、Q:请问用Visual Basic .NET开发PDA数据库程序能不能使用ADO.NET?

  A:Visual Basic .NET开发PDA数据库不需要引用System.data.oledb,只需要引用System.Data.SqlServerCe命名空间就可以了。该命名空间中的数据库操作类和ADO.NET是基本一致的。可以用它们来开发针对SQL Server CE的应用程序。

5、Q:在Visual C++2005中,可以使用.Net Compact Framework吗?

  A:不能,现在.NET Compact Framework只支持C#和VB.NET,而不支持C++/CLI。但是在VS.NET 2005中可以用C++来开发Native代码来支持移动设备。 

6、Q:从什么地方可以得到Smartphone开发环境?

  A:Smartphone的SDK可以在微软网站上找到,而Visual Studio 2005 Beta 2可以通过参加微软活动的方式获得。MEDC 2005的参加者都获得了VS.NET 2005和Windows Mobile 5 SDK的开发光盘。 

7、Q:托管性的代码执行效率怎么样?和使用Visual C++编写的代码相比较。

  A:托管代码的执行效率肯定不如本地代码高,但是托管代码也有一些好处是无法取代的。

8、Q:是否可以使用Visual Studio .NET 2003来开发能够运行在Windows Mobile 2005上的应用程序?

  A:首先更正一下,Windows Mobile最新一代的操作系统叫做Windows Mobile 5,而不是Windows Mobile 2005。是的,使用VS.NET 2003开发的应用程序是可以在Windows Mobile 5上正常运行的,因为Windows Mobile 5 ROM中内置了.NET Compact Framewrok 1.0 SP3。 

9、Q:PDA上不能用Pocket Access么?SQL CE太大了。

  A:可以使用Pocket Access来开发Windows Mobile上的应用程序。可以采用C++调用OLEDB或者ADOCE的方式来访问Pocket Access数据库。

10、Q:Visual Studio 2005的新功能是否只在Windows Mobile 5里受到支持,2003是否支持?

  A:新功能分两个部分,一部分是.NET Compact Framework 2.0中提供的的新功能,这部分的功能可以被Windows Mobile 2003支持,但必须安装.NET Compact Framework 2.0;而另一部分是Windows Mobile 5的特有功能。.NET Compact Framework 2.0和Windows Mobile 5开发文档的“What’s New”部分,分别描述了这两方面的新特性。

11、Q:请问如何在模拟器里面配置连接到移动网络?

  A:模拟器如果需要连接移动网络的话,必须有专门的硬件提供支持。可以在开发PC的串口上连一个GPRS的模拟器,SDK文档中对此有专门的说明。

12、Q:SQL CE可以像Pocket Access那样仅使用一个文件就能运行么?是否需要像PC上那样安个服务器才能使用?

  A:不会的,只需要在Windows Mobile上安装SQL Server CE的支持库,也就是就是一些DLL文件。而SQL Server CE的库文件是一个单独的文件,不需要安装一个服务器。

13、Q:开发好的程序通过什么方式部署到手机上?对手机有什么要求?

  A:开发的程序需要打包成cab文件部署到手机上。除了通过ActiveSync安装外,还可以通过网络下载存储卡运行等方式来安装应用程序。对手机的要求是,必须和开发程序的目标平台相兼容。比如为Windows Mobile 5开发的应用程序,可能就没办法很好地运行在Windows Mobile2003平台上。

14、Q:在模拟器上面开发程序,和真实环境有区别么?需要注意一些什么?

  A:模拟器的仿真度十分高,Windows Mobile 5的模拟器甚至可以支持ARM指令,所以基本不会遇到兼容性的问题。但是对于一些需要连接外部设备的应用场景,比如前边说的无线网络,还有GPS设备等,就需要用到实际设备了。

15、Q:当开发国际化应用程序时,应该特别注意哪些方面?

  A:对于国际化的应用程序,.NET本身就已经提供了非常好的支持。可以把用户界面的文字保存在相应的资源文件中,然后由应用程序判断操作系统的语言版本来调用相应的文字。

16、Q:用.NET开发Pocket PC程序需要考虑设备具体使用的是哪种CPU吗?

  A:不必。无论是在虚拟机上的x86指令集,还是实际设备上的ARM指令集,对.NET Compact Framework程序的运行来说都一样。 

17、Q:Windows Mobile 5 是否支持通过语音控制新的开发程序?

  A:现在还不支持。 

18、Q:可以在vwd2005 bata2中开发Pocket PC程序吗?Pocket PC是否具有浏览器?

  A:可以,Pocket PC平台是内置浏览器的。 

19、Q:Visual Studio 2005的Mobile开发,支持Mobile 2003的设备吗?

  A:支持,VS 2005本身就自带Windows Mobile 2003的SDK。

20、Q:Windows Mobile 5.0 for Smartphone较之前的版本有何明显的区别?对于测试这一领域,我们需要注意些什么?

  A:Windows Mobile 5的Smartphone平台更多的变化是在API层面,比如对数据库的支持、对GPS API的支持等, Windows Mobile 5 SDK文档中对此有详细地说明。

21、Q:对开发来说CDMA和GPRS的数据传输是透明的吗?

  A:对于软件开发来说数据传输是透明的,CDMA和GPRS对于上层应用程序来说,只要支持HTTP协议或者TCP/IP协议就可以进行数据传输的操作。 

22、Q:Visual Studio .NET能否支持Nokia的S60系列系统开发?

  A:可以,Visual C++能支持Nokia S60的开发。 

23、Q:Pocket PC与Mobile开发的主要区别在哪里?

  A:Window Mobile是微软公司基于Windows CE.NET的一个平台。它包含Pocket PC和Smartphone两个版本。 

24、Q:SDE从哪里可以下载?Pocket PC 2005的模拟器可以从哪里下载?

  A:SDE是早期用来开发移动设备程序的VS扩展,目前网上似乎很难找到。其实不用安装它,安装所需版本的Pocket PC或者Smartphone的SDK即可。各个版本的Windows Mobile开发的SDK和模拟器的地址可以从这篇Blog上下载(http://twodays.cnblogs.com/archive/2005/06/30/184107.htm)。 

25、Q:.NET Compact Framework 2.0能装在Windows Mobile 2003上吗?

  A:可以。.NET Compact Framework 2.0必须手动安裝到Windows Mobile 2003的机器上。

26、Q:请问有没有好的Windows Mobile编程的网站或者论坛?

  A:OpenNETCF.org、www.devbuzz.comwww.codeproject.comwww.msdn.com/mobility/www.pocketpcdn.com

27、Q:Windows Mobile 2003上的.NET Compact Framework能升级到.NET Compact Framework 2.0吗?

  A:可以。.NET Compact Framework 2.0必须手动安裝到Windows Mobile 2003的机器上。

28、Q:请问编写WML文件与使用.NET Compact Framework进行开发有什么联系和区别?

  A:WML是能够利用WAP浏览器进行浏览的文件,是一种基于Web的开发方式。.NET Compact Framework是在设备上运行的程序,是基于应用的开发方式。

29、Q:在使用.NET Compact Framework 1.0进行开发时,用EVC直接调用Native代码与使用C#通过P/Invoke在性能上有什么差别?在.NET Compact Framework 2.0上,用C++直接调用和用C#通过P/Invoke又如何呢?

  A:用EVC調用Native API的效率,会比使用.NET Compact Framework通过P/Invoke调用Native API要高,这是.NET Compact Framework本身的特性。在从托管代码中调用Native API时,其内部会进行一些额外的类型转换动作,这会导致效率的降低。

30、Q:有没有支持显示HTML文本的控件?

  A:WebBrowser控件可以用于HTML文本。

31、Q:CAB安装后会在Pocket PC上自动生成“卸载程序”,如何制作安装包,才能不自动产生“卸载程序”?

  A:利用VS 2005建立Smart Device Cab Project,在Solution Explorer的Cab Project上点击鼠标右键选择Property,即可看到有一个选项为NoUninstall,默认为False,改为True就可以了。

32、Q:OpenNETCF能运行在.NET Framework 1.1环境下吗?其中的控件可以与.NET Framework 1.1控件混合使用吗?怎样在Visual Studio .NET 2003中加入OpenNETCF控件?

  A:当初在设计NET Compact Framework 1.0/1.1时,由于考虑到移动设备的资源有限,所以有些原本.NET Framework 1.1中已经提供的类和控件就被删除了,OpenNETCF Smart Device Framework主要是针对.NET Compact Framework 1.0/1.1中没有的功能,开发出来的类似的类型和额外的功能,以弥补.NET Compact Framework 1.0/1.1不足之处。这套Framework主要是供.NET Compact Framework程序开发所用,除了少部份针对PC与Pocket PC的同步功能所编写的类之外,大部分都是在.NET Compact Framework上执行的,一般不支持.NET Framework。OpenNETCF的Smart Device Framework安装完毕之后,可以在VS 2003左侧的工具箱中看到OpenNETCF的控件,可以直接拖放来使用。

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
7天前
|
IDE 关系型数据库 开发工具
使用Visual Basic进行Windows窗体开发
【4月更文挑战第27天】本文介绍了使用Visual Basic进行Windows窗体(WinForms)开发的步骤,从搭建开发环境到创建、设计用户界面,再到编写事件驱动的代码和数据绑定。Visual Basic结合WinForms提供了一种易学易用的桌面应用开发方案。通过调试、优化、部署和维护,开发者可以构建专业应用程序。随着技术发展,掌握最新UI设计和开发工具对于保持竞争力至关重要。本文为初学者提供了基础指导,鼓励进一步探索和学习。
|
4天前
|
前端开发 Linux iOS开发
【Flutter前端技术开发专栏】Flutter在桌面应用(Windows/macOS/Linux)的开发实践
【4月更文挑战第30天】Flutter扩展至桌面应用开发,允许开发者用同一代码库构建Windows、macOS和Linux应用,提高效率并保持平台一致性。创建桌面应用需指定目标平台,如`flutter create -t windows my_desktop_app`。开发中注意UI适配、性能优化、系统交互及测试部署。UI适配利用布局组件和`MediaQuery`,性能优化借助`PerformanceLogging`、`Isolate`和`compute`。
【Flutter前端技术开发专栏】Flutter在桌面应用(Windows/macOS/Linux)的开发实践
|
6天前
|
编解码 Linux Windows
FFmpeg开发笔记(十三)Windows环境给FFmpeg集成libopus和libvpx
本文档介绍了在Windows环境下如何为FFmpeg集成libopus和libvpx库。首先,详细阐述了安装libopus的步骤,包括下载源码、配置、编译和安装,并更新环境变量。接着,同样详细说明了libvpx的安装过程,注意需启用--enable-pic选项以避免编译错误。最后,介绍了重新配置并编译FFmpeg以启用这两个库,通过`ffmpeg -version`检查是否成功集成。整个过程参照了《FFmpeg开发实战:从零基础到短视频上线》一书的相关章节。
21 0
FFmpeg开发笔记(十三)Windows环境给FFmpeg集成libopus和libvpx
|
7天前
|
编解码 Linux Windows
FFmpeg开发笔记(十一)Windows环境给FFmpeg集成vorbis和amr
在Windows环境下,为FFmpeg集成音频编解码库,包括libogg、libvorbis和opencore-amr,涉及下载源码、配置、编译和安装步骤。首先,安装libogg,通过配置、make和make install命令完成,并更新PKG_CONFIG_PATH。接着,安装libvorbis,同样配置、编译和安装,并修改pkgconfig文件。之后,安装opencore-amr。最后,重新配置并编译FFmpeg,启用ogg和amr支持,通过ffmpeg -version检查是否成功。整个过程需确保环境变量设置正确,并根据路径添加相应库。
24 1
FFmpeg开发笔记(十一)Windows环境给FFmpeg集成vorbis和amr
|
29天前
|
Linux 编译器 C语言
FFmpeg开发笔记(二)搭建Windows系统的开发环境
在Windows上学习FFmpeg通常较困难,但通过安装预编译的FFmpeg开发包可以简化流程。首先需要安装MSYS2来模拟Linux环境。下载并执行MSYS2安装包,然后修改msys2_shell.cmd以继承Windows的Path变量。使用pacman安装必要的编译工具。接着,下载预编译的FFmpeg Windows包,解压并配置系统Path。最后,在MSYS2环境中运行`ffmpeg -version`确认安装成功。欲深入学习FFmpeg开发,推荐阅读《FFmpeg开发实战:从零基础到短视频上线》。
32 4
FFmpeg开发笔记(二)搭建Windows系统的开发环境
|
2月前
|
数据可视化 数据库 C++
Qt 5.14.2揭秘高效开发:如何用VS2022快速部署Qt 5.14.2,打造无与伦比的Windows应用
Qt 5.14.2揭秘高效开发:如何用VS2022快速部署Qt 5.14.2,打造无与伦比的Windows应用
|
5月前
|
监控 API C++
8.4 Windows驱动开发:文件微过滤驱动入门
MiniFilter 微过滤驱动是相对于`SFilter`传统过滤驱动而言的,传统文件过滤驱动相对来说较为复杂,且接口不清晰并不符合快速开发的需求,为了解决复杂的开发问题,微过滤驱动就此诞生,微过滤驱动在编写时更简单,多数`IRP`操作都由过滤管理器`(FilterManager或Fltmgr)`所接管,因为有了兼容层,所以在开发中不需要考虑底层`IRP`如何派发,更无需要考虑兼容性问题,用户只需要编写对应的回调函数处理请求即可,这极大的提高了文件过滤驱动的开发效率。
43 0
|
27天前
|
监控 安全 API
7.3 Windows驱动开发:内核监视LoadImage映像回调
在笔者上一篇文章`《内核注册并监控对象回调》`介绍了如何运用`ObRegisterCallbacks`注册`进程与线程`回调,并通过该回调实现了`拦截`指定进行运行的效果,本章`LyShark`将带大家继续探索一个新的回调注册函数,`PsSetLoadImageNotifyRoutine`常用于注册`LoadImage`映像监视,当有模块被系统加载时则可以第一时间获取到加载模块信息,需要注意的是该回调函数内无法进行拦截,如需要拦截则需写入返回指令这部分内容将在下一章进行讲解,本章将主要实现对模块的监视功能。
38 0
7.3 Windows驱动开发:内核监视LoadImage映像回调
|
5月前
|
监控 安全 API
7.2 Windows驱动开发:内核注册并监控对象回调
在笔者上一篇文章`《内核枚举进程与线程ObCall回调》`简单介绍了如何枚举系统中已经存在的`进程与线程`回调,本章`LyShark`将通过对象回调实现对进程线程的`句柄`监控,在内核中提供了`ObRegisterCallbacks`回调,使用这个内核`回调`函数,可注册一个`对象`回调,不过目前该函数`只能`监控进程与线程句柄操作,通过监控进程或线程句柄,可实现保护指定进程线程不被终止的目的。
31 0
7.2 Windows驱动开发:内核注册并监控对象回调
|
5月前
|
监控 安全 API
7.6 Windows驱动开发:内核监控FileObject文件回调
本篇文章与上一篇文章`《内核注册并监控对象回调》`所使用的方式是一样的都是使用`ObRegisterCallbacks`注册回调事件,只不过上一篇博文中`LyShark`将回调结构体`OB_OPERATION_REGISTRATION`中的`ObjectType`填充为了`PsProcessType`和`PsThreadType`格式从而实现监控进程与线程,本章我们需要将该结构填充为`IoFileObjectType`以此来实现对文件的监控,文件过滤驱动不仅仅可以用来监控文件的打开,还可以用它实现对文件的保护,一旦驱动加载则文件是不可被删除和改动的。
30 1
7.6 Windows驱动开发:内核监控FileObject文件回调

热门文章

最新文章