下面是对Pocket PC中经常性问题的回答。我认为新闻组中的问题适中,我通过电子邮件接受问题,还可以将问题发送给Microsoft Premier Support team。我每月更新一次列表,所以发送你的问题并且经常核对。
你可以从Microsoft® eMbedded Visual Tools (EVT)找到下载。
如果你是MSDN全球订户,你也可以从MSDN全球下载部分下载这个工具。查找EVT。
使用EVT,你可以为Pocket PC开发,但是不能在Pocket PC上开发。eMbedded Visual Tools允许你在你的桌面PC上为Pocket PC开发。Pocket PC软件开发包(SDK)配套的一个模拟器也在你的PC上运行,因此你可以测试或调试你的程序,而不使用一个真正的Pocket PC.
EVT配套的有H/PC Pro 3.0 和 Palm-size PC 1.2设备的SDK。你也可以安装H/PC2000或者其他第三方OEM的自定义SDK。
一个简短的回答:eMbedded Visual Tools。Microsoft Windows® CE Platform Builder (PB)是提供给OEM和硬件开发厂商的工具包,用来创建使用Windows CE作为他们操作系统的设备。查看这个WEB服务器将会发现更多details about the difference between EVT and PB。
VeriTest有最近的logo compliance技术手册,在its Web site。
在MSDN中有一篇关于这个问题的很好的文章,HOW TO: Pass Arrays Between Visual Basic and C。他写的是Microsoft Visual Basic®和Microsoft Visual C++®的桌面版本,但是它不能很好的应用于嵌入式开发和移动设备开发中。
请查看MSDN中的DOC: Selecting the Icon Group for a Control Panel Dialog Box。
你不能,真的。尽管Windows CE不支持唯一的序列号,Pocket PC OEM共同决定不支持这个特征。原因是费用:每个Pocket PC将不得不得到一个单独的Windows CE映像,包括序列号,这将需要额外的制造程序。
如果你需要单独的序列号,我推荐使用SanDisk, Kingston Technology或者IBM的CompactFlash™卡。CompactFlash卡有一个唯一的序列号,并且可以容易地读取。Chris Muench 和 Randolph Kath的《The Windows CE Technology Tutorial》的第11章详细地说明了方法。
eMbedded Visual C++过去习惯于为所有的Windows CE设备和包括真正嵌入式设备的平台,开发应用程序。虽然Pocket PC通常只能使用StrongARM, MIPS和SH3处理器,一个工业HMI (human machine interface panel)或者一个气泵也许运行在其他九种被支持的CPU家族上。事实上,你为一个平台安装的SDK决定你应用程序的目标是什么CPU。Pocket PC SDK只能包含MIPS, StrongARM和SH3的库。
微软最近发布的版本Microsoft ActiveX® Data Objects for Windows CE (ADOCE) 3.1.
除了对BUG的修补,新版本也有一些速度方面的提高。
这是ADOCE 3.0一个众所周知的问题。有两个方法:
1.在你的Pocket PC中,系统设置Regional Settings程序中,将国家设置为“English (United States)。这里装载的是英语资源DLL。
2.将你的Pocket PC更新为ADOCE 3.1 (看上面的连接)。如果不能发现国家指定版本,新版本将使用英语版本。
PC Access database format (.mdb)和Access format on the Pocket PC (.cdb)是不同的,并且这两者应用于Pocket PC模拟器上的格式是不同的。将一个Access数据库从Pocket PC上移动到开发环境中你必须首先拷贝Access文件到PC桌面上。通过拷贝过程,.cdb文件转换为.mdb文件。
然后,你需要写一个短小的转换程序,将一个.mdb文件拷贝到模拟器中。更多的信息,请看Move an Access Database into the Emulation.
ADOCE通常支持Recordset.Find()方法,但是是依赖于OLEDB的底层支持。因为Pocket Access files (.cdb files)和对象存储不支持这个方法,对Find()的调用失败。如果你在Microsoft SQL Server 2000 for CE中使用这个方法,Find()方法将工作正常。
http://www.microsoft.com/mobile/developer/tips/rsErrors.asp
http://www.microsoft.com/mobile/pocketpc/tips/adoce.asp
http://msdn.microsoft.com/library/default.asp?URL=/library/wcedoc/adoce31/adowlcm.htm
http://msdn.microsoft.com/library/default.asp?URL=/library/techart/adoce30.htm
http://www.microsoft.com/mobile/pocketpc/stepbystep/dnappart1.asp http://www.microsoft.com/mobile/pocketpc/stepbystep/dnappart2.asp http://www.microsoft.com/mobile/pocketpc/stepbystep/dnappart3.asp http://www.microsoft.com/mobile/pocketpc/stepbystep/dnappart4.asp