问:Microsoft® eMbedded Visual Tools 3.0到底是什么?
答:eMbedded Visual Tools 3.0是一套供嵌入式开发商在Microsoft Windows® CE操作系统上面向新一代32位设备编写软件应用程序的相关工具。该产品提供了Microsoft eMbedded Visual C++® 3.0开发系统完全版、Microsoft eMbedded Visual Basic® 3.0开发系统完全版、SDK、远程工具及相关文档。
问:eMbedded Visual Tools 3.0同Windows CE Platform Builder 3.0之间存在哪些差异?
答:Platform Builder 3.0为您提供了在Windows CE 3.0操作系统上迅速创建32位嵌入式系统所需的全部工具。此外,Platform Builder 3.0还包括eMbedded Visual Tools 3.0完全版。
问:如何获取eMbedded Visual Tools 3.0?
答:通过访问Windows CE eMbedded Visual Tools站点,以在线方式订购。
问:订购eMbedded Visual Tools 3.0需要支付哪些费用?
答:您只需支付相关产品发售费用(在美国和加拿大为7.5美元;其它地区则为14.95美元)即可。请注意,您所获得的是完全正式版,而非测试版。
问:除eMbedded Visual Tools 3.0之外,我们是否还需要另行购买Microsoft Visual Studio®开发系统?
答:不必。eMbedded Visual Tools 3.0是一个完整而独立的工具集,它并不需要另行获取Visual Studio、Visual C++或Visual Basic。
问:我目前正在使用Windows CE Toolkits for Visual C++ 6.0 and Visual Basic 6.0。eMbedded Visual Tools 3.0会替代它们吗?
答:不会。您可继续对老式工具包加以应用。但是,请您务必认真阅读README.HTM文件,以便掌握在继续沿用老式工具包的前提下,安装新型HPC Pro与Pocket PC 1.2 SDK的正确方法。
问:eMbedded Visual Tools 3.0可为哪些平台提供支持?
答:eMbedded Visual Tools 3.0随同面向Pocket PC、H/PC Pro及Palm-size PC 1.2的SDK一并发售。如果您拥有像嵌入式开发板卡这样的另类硬件,则请向供货商进行垂询,以便获取所需设备专用SDK的相关信息。eMbedded Visual Tools 3.0可生成与Windows CE 2.11版、2.12版及3.0版相兼容的程序代码。
问:如果我需要针对运行于Windows CE 2.0之上的Handheld PC或运行于Windows CE 2.01之上的Palm-size PC等早期设备编写应用程序的话,应使用何种工具?
答:面向早期设备的开发商应继续使用Windows CE Toolkits for Visual C++ 6.0 and Visual Basic 6.0,并辅以Visual Studio。
问:如果我拥有一个通过在Visual Studio下使用Toolkits而创建出来的项目,并希望将其升级为eMbedded Visual Tools 3.0标准,应该怎么办?
答:eMbedded Visual C++能够直接打开由Windows CE Toolkit for Visual C++ 6.0所创建的项目。而对于那些通过使用Windows CE Toolkit for Visual Basic创建出来的项目,则请在eMbedded Visual Basic 3.0帮助文件的附录2中查阅有关指导材料。
问:eMbedded Visual Tools 3.0可面向哪些微处理器提供支持?
答:eMbedded Visual C++提供了针对下列微处理器类型的编译器:
ARM720
SA1100
MIPS
MIPS16
MIPSFP
PPC
SH3
SH4
THUMB
x86
x86设备模拟器
eMbedded Visual Basic则提供了针对下列微处理器类型的编译器:
ARM720
SA1100
MIPS39xx
MIPS41xx
MIPS41xx 16位模式
SH3
x86设备模拟器
问:eMbedded Visual Tools 3.0是否支持模拟操作?
答:是的。不过,只有在运行于Microsoft Windows 2000 Professional或Microsoft Windows NT® Workstation 4.0之下时才会这样。
问:是否可在Windows 98或Windows 98 Second Edition下运行eMbedded Visual Tools 3.0?
答:eMbedded Visual Tools 3.0的确需要Windows 98 Second Edition提供支持。该产品将无法安装在Windows 98之下。请注意,在运行于Windows 98 Second Edition平台上时,将无法执行模拟操作;而在其它情况下,产品则将具备全部功能。
问:如何获取更多相关信息?
答:您可以查阅随同eMbedded Visual Tools 3.0一并提交的最新改进文档,访问Windows CE开发商工具站点,浏览eMbedded Visual Tools数据表或访问Windows CE eMbedded Visual Tools站点。
问:我用evc开发的程序无法在PDA上显示中文(PDA有中文系统,EVB开发的程序可以!用的一样的字体??)
答:开发中文程序,总结(x862002为例):
(1)从微软网站上下载EVC3.0,并安装
(2)从微软网站上下载Pocket PC 2002 SDK,并安装(此时是英文Image-English-No Radio,在相应的Emulation目录下)
(3)从微软网站下载语言Image程序(简体中文为ChSimp-NoRadio.exe),按照说明(ReadMe.txt)进行安装(修改注册表等一系列步骤)
(4)确认对话框等资源的语言为Chinese(P.R.C),就可以正常显示中文了。
问:我有个程序要在读入一个文件,但是不知道如何把这个文件放到模拟器中请大侠指教
问:怎么控制对话框上方的OK按钮,譬如让它出现,或者禁止它出现.还有如何加其他的按钮,譬如cancel.
答:看看资源文件(用记事本之类打开)如果有EX0800000之类的在你的对话框中,就把它删掉,OK就没有了 如果想所有的都没有,就不要system cotrol
问:如果我想在对话框的标题栏右边加一个组合框,怎么办?
答:将下面的源码放入到CYourDialog::OnInitDialog()函数体内:
CCeCommandBar m_wndCommandBar;
if(m_wndCommandBar.m_hWnd == NULL)
m_wndCommandBar.Create(this);
m_wndCommandBar.InsertSeparator(6);
CComboBox* pComboBox = m_wndCommandBar.InsertComboBox(100, 1001);
pComboBox->AddString(L"1");
pComboBox->AddString(L"2");
pComboBox->AddString(L"3");
pComboBox->AddString(L"4");
pComboBox->SetCurSel(0);
这是CEGadgets.com 网站的一个关于CE开发的FAQ,但是大部分内容是关于Windows CE2.xx版本的,因此我并没有全部翻译,而是进行了筛选,把一些我认为比较有用的,试着译出,大概占到原文的60%。如果你对WINDOWS CE以前的版本感兴趣可以直接阅读原文。
====常规问题====
问:为什么我应该为Windows CE写软件?
答:PDA(个人数字助理)发展的非常迅速!2001年IDC研究并预测,每年掌上设备的市场增长将超过40%。 掌上设备将成为下一个巨大的企业计算处理平台。IDC还大胆的预言PDA在2001将超越PC出售,到达20千万台。
Windows CE正是为了这个,而快速的生长和发展起来的。微软的Windows CE系统在企业应用和开发方面是一个不错的选择,并且WINCE有很多的的合作伙伴,包括了应用软件和硬件设备。
如果你已具备任何Windows平台开发的经验, 那你可以很容易的进行Windows CE开发。如果是其他的平台,你必须重新学习新的开发工具和适用于这个平台的API,这还没有完,你的程序还将得不到微软和他的合作伙伴的支持。你可以利用微软的强大市场能力和你的知识开始CE编程。
问:在Windows CE中的CE代表什么?
答:虽然微软宣称CE不代表任何特别的意思,但是对于CE有很多的流行说法,而且都很有趣。它代表消费者电子技术(Consumer Electronics)或者或紧凑的版本(Compact Edition),这显然是比较好的。也有很多的人因为CE的问题把它成做残废的版本(Crippled Edition) 还有一个是我比较喜欢的,货物售出,概不退换(Caveat Emptor)。
问:我想要学习进行Windows CE开发。我应该在哪儿开始?
答:你可以找到许多关于Windows CE开发的资源。 首先,你可以选择Windows CE新闻组:
Microsoft.public.win32.programmer.wince
Microsoft.public.vb.vbce
Microsoft.public.windowsce
Microsoft.public.vc.vcce
Microsoft.public.ado.wince
Microsoft.public.windowsce.developer.betas
Microsoft.public.windowsce.embedded
其次,你可以检查www.deja.com(不知道连接是否有效)上的关于Windows CE开发的好的文档,这也是不错的一个Windows CE资源。
我最喜欢的是windows ce的邮件列表。它可能是从最纯粹的技术的角度讨论Windows CE的资源了,并且有很多的CE开发高手已经加入。它包含嵌入式应用开发各个方面。想要加入它,只需发送电子邮件到WindowsCE-Dev@Lists.WindowsCE.com
你还可以找到一些书籍,也可以访问一些和Windows CE开发有关的网站。
最后,没有什么比实际经验更重要的了。你可以购买微软开发工具,或者NSBasic。试着创建一些应用程序。如果你有Windows开发经验,那么你将发现为Windows CE开发仅仅有一点点的痛苦;-)
雷神:这个老外唠唠叨叨的说了一大堆,我在补上一条。访问
问:关于Windows CE开发有什么书?
答:下面是作者精心挑选出的几本书,很遗憾除了第一本,其他的国内好象都没有,如果你知道别忘了告诉大家一声。
Inside Windows CE – John Murray
Programming Embedded Systems for Microsoft Windows Ce – Jeff McLeman
Professional Visual Basic Windows CE Programming – Larry Roof
Programming Windows CE – Douglas Boling
Windows CE 2 Programming for Dummies – Nick Gratten
Essential Windows CE Application Programming – Robert Burdick
Windows CE Developers Handbook – Terence Goggin
Windows CE from the Ground Up - Jean Louis Gareau (annabooks web site).
Sams Teach Yourself Windows CE Programming in 24 Hours – Bsquare
Windows Ce : Application Development – Keven Millsap, Marshall Brain
问:能否在推荐一些关于Windows CE开发的网站?
答:这有一些关于 CE 开发的站点:
Microsoft’s Windows CE site –
可以获得实例、SDK和一些工具。
Visual CE Developer Site -
有大量关于Visual C++ for CE的一些信息.
Visual Basic Developer Site -
有大量关于Visual Basic for CE的一些信息.另外还提供一些Visual Basic for Windows CE开发的控件.
还有一些,我不在这里一一列出了,大家可以用GOOGLE搜出一串......
问:什么事情是我在设计新的Windows CE应用程序以前需考虑的?
答:(希望没有错误)
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++开发。 我需要什么?
答:使用Visual C++开发是非常好的选择,因为在任何CE平台上它都可以工作。
Visual C++ Toolkit for Windows CE 5.0这是Windows CE开发环境的一个旧的版本。它当然没有后出的VC6.0好,并且没有支持PSPC 1.2 SDK,以太网调试等等。但如果你想开发Windows CE1.0应用,那只好使用它。因为6.0并不支持WinCE1.0。
使用Visual C++ 5.0开发你需要下列工具:
Visual C++ 5.0, Professional or Enterprise edition
Visual 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 Enterprise edition
Visual C++ Toolkit for Windows CE 6.0
Any of the CE SDK's, 可免费从微软网站下载。
问:还有那些Windows CE开发工具是可以选择的?
答:(雷神:有很多,现在有更多的选择)
NSBasic –
BasicCE –
PocketC -
Python –
Waba –
Jeode -
Pocket Scheme -
JSoftware -
Dialect -
Transvirtual -
CrEme -
Visual CE -
River Run Software AppsBuilder -
问:我怎样报告Windows CE开发工具的BUG或提出新的需求?
答:微软有一些有用的电子邮件地址:
Windows CE开发工具需求建议:
wcetwish@microsoft.com
Windows CE开发工具错误报告:
wcetbug@microsoft.com
问:哪里有SH3的指令集和反汇编程序?
答:
问:在Windows CE应用程序中可以使用DCOM吗?
答:Windows CE 2.11以及更早的版本不包含DCOM实现- 那时候只有进程内服务被允许。然而,DCOM FOR CE的测试版(在9/99)出现,微软计划CE3.0将包括DCOM的实现。Intrinsyc公司实现了CE2的DCOM。虽然和微软的桌面DCOM不太一样,但是它提供相似的功能。更多的信息访问:
问:Windows CE支持COM吗?
答:Windows CE仅仅支持进程内COM对象。有在Windows CE的下一个版本将扩充COM功能的说法。下面是关于CE的COM开发的一些参考:
"How to Write and Use ActiveX Controls for Microsoft Windows CE" from the MSDN
"The Tools You'll Need to Build Embedded Apps: Windows CE Toolkit for Visual C++ 6.0" from MSJ July 1999. There's a section called "Desktop ActiveX Controls".
上一个问题。
在CE平台上我已经使用ATL有一段时间了,除了在connection points上有一些小问题外,其他都工作的很好。在CEGadgets.com主页上可得到所有的CE下使用ATL写的控件。
问:如何把自己的图标加到task bar上面 ?
答:经常看到一些程序可以把自己的图标放到task bar上面,和那些系统图标并排是不是很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 or Dashboard会覆盖taskbar,这样你的图标也不见了,如果你想让你的图标继续显示,就需要取得这些程序的窗口句柄,然后在上面建立自己的窗口,原理是一样的。
问:如何取得当前window的hWnd?
答:这是一个很烦人的问题,不少函数都需要这个变量,结论其实简单:
AfxGetApp()->GetMainWnd()->m_hWnd
问:在程序中打开和关闭PPC软键盘 ?
答:看到有不少人在问如何在程序中控制打开和关闭SIP(Soft Input Panel),其实这是一个简单问题,
MSDN的解决方案是用:
SHSipPreference(hWnd, SIP_UP);
SHSipPreference(hWnd, SIP_DOWN);
但这需要一个hWnd参数,在Dialog base的程序中不好找.
其实还有一个更好的方法:
先
#i nclude "SIPAPI.H"
然后就可以调用
SIPShowIM(SIPF_ON)
SIPShowIM(SIPF_OFF)
来打开/关闭SIP了.
不过奇怪的是MSDN从未提到这个最简单的办法.
问:如何去掉PPC2002上的"智能最小化"按钮 ?
答:PPC2002在外观上的一个显著改进就是加了个"智能最小化"按钮,就是那个包着圈的X,一开始阿猫还以为它是关闭按钮:) (可为什么不设一个关闭按钮呢?)
如果因为某种原因你不想要它.可以加这么一句:
ModifyStyle(0, WS_NONAVDONEBUTTON, SWP_NOSIZE);
问:如何建立一个非全屏的Dialog窗口?
答:不知什么原因,M$的PPC SDK中默认的Dialog是全屏的.
就是说
CNfsDlg dlg;
dlg.DoModal();
打开的Dialog是全屏的.我猜这是Microsoft想在狭窄的PPC屏幕上给大家提供一个更"广阔的"空间.但用惯了的Windows还颇有些不习惯.如何变成非全屏窗口呢?
最简单的方法是在DoMoal前设置m_bFullScreen参数.
CNfsDlg dlg;
dlg.m_bFullScreen = FALSE;
dlg.DoModal();
=============第三方工具和硬件==================
问:在Windows CE平台上有哪个数据库是可得到的?
已知的可以在Windows CE平台下使用的数据库工具数量很多。下面是一个挑选出来CE数据库侯选名单:
Object store database
ADOCE
OLEDB SDK (Q4 99)