WinCE开发常见问题汇总 (二)常规问题

来源:互联网 发布:cn域名注册多少钱 编辑:程序博客网 时间:2024/06/06 02:09
 问:为什么我应该为Windows CE写软件?答:PDA(个人数字助理)发展的非常迅速!2001年IDC研究并预测,每年掌上设备的市场增长将超过40%。掌上设备将成为下一个巨大的企业计算处理平台。IDC还大胆的预言PDA在2001将超越PC出售,到达20千万台。 WindowsCE正是为了这个,而快速的生长和发展起来的。微软的WindowsCE系统在企业应用和开发方面是一个不错的选择,并且WINCE有很多的的合作伙伴,包括了应用软件和硬件设备。如果你已具备任何Windows平台开发的经验, 那你可以很容易的进行WindowsCE开发。如果是其他的平台,你必须重新学习新的开发工具和适用于这个平台的API,这还没有完,你的程序还将得不到微软和他的合作伙伴的支持。你可以利用微软的强大市场能力和你的知识开始CE编程。 问:在Windows CE中的CE代表什么?答:虽然微软宣称CE不代表任何特别的意思,但是对于CE有很多的流行说法,而且都很有趣。它代表消费者电子技术(ConsumerElectronics)或者或紧凑的版本(CompactEdition),这显然是比较好的。也有很多的人因为CE的问题把它成做残废的版本(Crippled Edition)还有一个是我比较喜欢的,货物售出,概不退换(Caveat Emptor)。 问:我想要学习进行Windows CE开发。我应该在哪儿开始?答:你可以找到许多关于Windows CE开发的资源。 首先,你可以选择Windows CE新闻组:Microsoft.public.win32.programmer.wince Microsoft.public.vb.vbceMicrosoft.public.windowsce Microsoft.public.vc.vcceMicrosoft.public.ado.wince Microsoft.public.windowsce.developer.betasMicrosoft.public.windowsce.embedded其次,你可以检查www.deja.com(不知道连接是否有效)上的关于Windows CE开发的好的文档,这也是不错的一个WindowsCE资源。 我最喜欢的是windows ce的邮件列表。它可能是从最纯粹的技术的角度讨论WindowsCE的资源了,并且有很多的CE开发高手已经加入。它包含嵌入式应用开发各个方面。想要加入它,只需发送电子邮件到WindowsCE-Dev@Lists.WindowsCE.com 你还可以找到一些书籍,也可以访问一些和Windows CE开发有关的网站。最后,没有什么比实际经验更重要的了。你可以购买微软开发工具,或者NSBasic。试着创建一些应用程序。如果你有Windows开发经验,那么你将发现为Windows CE开发仅仅有一点点的痛苦;-) 雷神:这个老外唠唠叨叨的说了一大堆,我在补上一条。访问http://www.vchelp.net那里有关于VC/C++编程的许多优秀资源,当然它也包括了WINDOWS CE。问:关于Windows CE开发有什么书?答:下面是作者精心挑选出的几本书,很遗憾除了第一本,其他的国内好象都没有,如果你知道别忘了告诉大家一声。 Inside Windows CE– John Murray Programming Embedded Systems for Microsoft Windows Ce –Jeff McLeman Professional Visual Basic Windows CE Programming – LarryRoof Programming Windows CE – Douglas Boling Windows CE 2 Programmingfor Dummies – Nick Gratten Essential Windows CE Application Programming– Robert Burdick Windows CE Developers Handbook – Terence GogginWindows CE from the Ground Up - Jean Louis Gareau (annabooks web site).Sams Teach Yourself Windows CE Programming in 24 Hours – BsquareWindows Ce : Application Development – Keven Millsap, Marshall Brain问:能否在推荐一些关于Windows CE开发的网站? 答:这有一些关于 CE 开发的站点: Microsoft’s Windows CEsite – www.microsoft.com/windowsce 可以获得实例、SDK和一些工具。 Visual CE DeveloperSite - http://www.vcce.com/ 有大量关于Visual C++ for CE的一些信息. Visual BasicDeveloper Site - http://www.vbce.com/ 有大量关于Visual Basic forCE的一些信息.另外还提供一些Visual Basic for Windows CE开发的控件.还有一些,我不在这里一一列出了,大家可以用GOOGLE搜出一串...... 问:什么事情是我在设计新的WindowsCE应用程序以前需考虑的? 答:(希望没有错误) 1。 在你设计之前请了解一些要求和限制。 2。为你的用户制造真正有帮助的产品-你应该是第一个使用着。 3. 记住,发布版本要有功能–采用轮询技术,减少串口资源的消耗。 4。运用WM_HIBERNATE 5。 考虑因特网连通性。 6. 检查是否有GNU或可以移植的源码– 你的应用软件可能已经被写过了。 7.记得,你最好不让你的应用程序只运行在Palm Size PC上(Windows CE 2.0– 2.11)。 8。为你的应用程序写一份帮助文件 9. 将程序做成安装程序–使它可以很容易被安装。10。在实际的设备上的测试。仿真器虽然好但是它不是真实的Windows CE设备。 11。别使用特立独行的方法,除非这样做能帮助它。12。买一块以太网卡以便建立网络环境-它是物有所值的。 问:我想要使用Visual C++开发。 我需要什么? 答:使用VisualC++开发是非常好的选择,因为在任何CE平台上它都可以工作。 Visual C++ Toolkit for Windows CE5.0这是Windows CE开发环境的一个旧的版本。它当然没有后出的VC6.0好,并且没有支持PSPC 1.2SDK,以太网调试等等。但如果你想开发Windows CE1.0应用,那只好使用它。因为6.0并不支持WinCE1.0。 使用VisualC++ 5.0开发你需要下列工具: Visual C++ 5.0, Professional or Enterprise editionVisual C++ Toolkit for Windows CE 5.0 HPC or PSPC SDK,可免费从微软站点下载。当前使用C/C++为Windows CE开发应用的开发环境是Visual C++ Toolkit for Windows CE 6.0。使用Visual C++ 6.0开发你需要下列工具: Visual C++ 6.0, Professional or Enterpriseedition Visual C++ Toolkit for Windows CE 6.0 Any of the CE SDK's,可免费从微软网站下载。 问:还有那些Windows CE开发工具是可以选择的? 答:(雷神:有很多,现在有更多的选择) NSBasic –http://www.nsbasic.com/ BasicCE – www.cemonster.com/development.htmPocketC - http://www.orbworks.com/wince/index.html Python –http://www.python.org/ for general information, andhttp://starship.python.net/crew/mhammond/ce for the product. Waba –http://www.wabasoft.com/ Jeode - http://www.insignia.com/ Pocket Scheme- http://www.angrygraycat.com/scheme/pscheme.htm JSoftware -http://www.jsoftware.com/download/download.htm Dialect -http://www.aristar.com/DeveloperTools.html Transvirtual -http://www.transvirtual.com/ CrEme -http://www.nsicom.com/products/creme.htm Visual CE -http://www.syware.com/ River Run Software AppsBuilder -http://www.riverrun.com/appsbuilder/index.html 问:我怎样报告WindowsCE开发工具的BUG或提出新的需求? 答:微软有一些有用的电子邮件地址: Windows CE开发工具需求建议:wcetwish@microsoft.com Windows CE开发工具错误报告: wcetbug@microsoft.com问:哪里有SH3的指令集和反汇编程序? 答: http://www.datarescue.com/idawindowsce.htm有Windows CE代码的反汇编程序。另一个反汇编程序地址: http://www.delosoft.com/ 问:在WindowsCE应用程序中可以使用DCOM吗? 答:Windows CE 2.11以及更早的版本不包含DCOM实现-那时候只有进程内服务被允许。然而,DCOM FORCE的测试版(在9/99)出现,微软计划CE3.0将包括DCOM的实现。Intrinsyc公司实现了CE2的DCOM。虽然和微软的桌面DCOM不太一样,但是它提供相似的功能。更多的信息访问: http://www.intrinsyc.com./ 问:Windows CE支持COM吗?答:Windows CE仅仅支持进程内COM对象。有在WindowsCE的下一个版本将扩充COM功能的说法。下面是关于CE的COM开发的一些参考: "How to Write and Use ActiveXControls for Microsoft Windows CE" from the MSDN "The Tools You'll Needto Build Embedded Apps: Windows CE Toolkit for Visual C++ 6.0" from MSJJuly 1999. There's a section called "Desktop ActiveX Controls". 上一个问题。在CE平台上我已经使用ATL有一段时间了,除了在connectionpoints上有一些小问题外,其他都工作的很好。在CEGadgets.com主页上可得到所有的CE下使用ATL写的控件。问:如何把自己的图标加到task bar上面 ? 答:经常看到一些程序可以把自己的图标放到taskbar上面,和那些系统图标并排是不是很cool呢? 其实做到一点很容易的,只要加入下面的代码: CString strClass =::AfxRegisterWndClass(0); HWND hTaskBar = ::FindWindow(_T("HHTaskBar"),NULL); CWnd::CreateEx( 0, strClass, _T("MyIcon"), WS_CHILD|WS_VISIBLE,r.left, r.top, r.Width(), r.Height(), hTaskBar, 0, 0); 其原理是找到taskbar窗口,然后以taskbar窗口为父窗口建一个你自己的图标窗口。 不过要注意,一些程序例如WisBar orDashboard会覆盖taskbar,这样你的图标也不见了,如果你想让你的图标继续显示,就需要取得这些程序的窗口句柄,然后在上面建立自己的窗口,原理是一样的。 问:如何取得当前window的hWnd? 答:这是一个很烦人的问题,不少函数都需要这个变量,结论其实简单:AfxGetApp()->GetMainWnd()->m_hWnd 问:在程序中打开和关闭PPC软键盘 ?答:看到有不少人在问如何在程序中控制打开和关闭SIP(Soft Input Panel),其实这是一个简单问题, MSDN的解决方案是用:SHSipPreference(hWnd, SIP_UP); SHSipPreference(hWnd, SIP_DOWN);但这需要一个hWnd参数,在Dialog base的程序中不好找. 其实还有一个更好的方法: 先 #include "SIPAPI.H"然后就可以调用 SIPShowIM(SIPF_ON) SIPShowIM(SIPF_OFF) 来打开/关闭SIP了.不过奇怪的是MSDN从未提到这个最简单的办法. 问:如何去掉PPC2002上的"智能最小化"按钮 ?答:PPC2002在外观上的一个显著改进就是加了个"智能最小化"按钮,就是那个包着圈的X,一开始阿猫还以为它是关闭按钮:)(可为什么不设一个关闭按钮呢?) 如果因为某种原因你不想要它.可以加这么一句: ModifyStyle(0,WS_NONAVDONEBUTTON, SWP_NOSIZE); 问:如何建立一个非全屏的Dialog窗口? 答:不知什么原因,M$的PPCSDK中默认的Dialog是全屏的. 就是说 CNfsDlg dlg; dlg.DoModal();打开的Dialog是全屏的.我猜这是Microsoft想在狭窄的PPC屏幕上给大家提供一个更"广阔的"空间.但用惯了的Windows还颇有些不习惯.如何变成非全屏窗口呢? 最简单的方法是在DoMoal前设置m_bFullScreen参数. CNfsDlg dlg;dlg.m_bFullScreen = FALSE; dlg.DoModal(); [em17]
原创粉丝点击