简述Win CE开发特性及忠告(4)

使用window.performance分析web前端性能 参考链接: https://blog.csdn.net/lovenjoe/article/details/80260658 转载于:https://www.cnblogs.com/ziyoublog/p/10730827.html 阅读详情

WIN CE 开发忠告 [1]

不要在仿真器上使用Windows NT库

  这里所讨论的第一个错误实在太愚蠢了,但我还是陷了进去,也许你也会。当用Microsoft VC++(5.0版)创建一个Windows CE程序时,你会发现,包含路径(include)、 库路径(library)、及可执行程序路径被自动调整以匹配反应目标环境的选择。因此,比如说为Windows CE模拟器建立应用程序时,你会发现,include路径没有指向Win32的包含文件(在VC目录下),而是指向Windows CE包含文件(在WCE目录下)。千万别去修改。

  由于Windows CE在Windows NT下运行,所以仿真器上运行的程序能够调用任一Windows NT动态链接库(DLL)中的函数,即使这个DLL不是模拟器的成员也一样。显然,这不是很好的事,因为相同的函数也许在手持PC(H/PC)或Windows CE设备上不可用,而你的软件最终要能在这些设备上运行。

  第一次将非Unicode应用程序装入Windows CE仿真器时,你会发现,许多正在使用的函数它都不支持,例如美国国家标准协会(ANSI)定义的字符函数strcpy()。这也许引诱你去链接Windows NT 运行时间库,以便能解决所有问题。

  如果你是刚开始用Windows CE编程,可能你能用的包含文件和库文件是明显的。答案就是,你不要采用那些在写普通Win32或非Windows CE程序时使用的包含文件和库文件。

不要混淆TCHARs和bytes

  如果你正在Windows CE上写非Unicode应用程序,你或许要将所有的字符串从单个字符(chars)转换为宽字符(widechars)(例如,C变量类型whcar_t)。几乎所有Windows CE支持的Win32和运行时间库函数都要求宽字符变量。Windows 95不支持Unicode,然而,为了使程序代码具有可移植性,你要尽可能采用tchar.h中定义的TCHAR类型,不要直接使用wchar_t。

  TCHAR是定义为wchar_t还是char,取决于预处理器的符号UNICODE是否定义。同样,所有有关字符串处理函数的宏,如_tcsncpy宏,它是定义为Unicode函数wcsncpy还是定义为ANSI函数strncpy,取决于UNICODE是否定义。

  在现存的Windows应用程序中,有些代码也许暗示字符长为单字节。这在给字符串分配内存时经常用到,例如:

int myfunc(char *p)
{
char *pszFileName;

pszFileName = malloc(MAXFILELEN);
if(pszFileName)
strncpy(pszFileName, p, MAXFILELEN);
/*etc*/


  在这段代码中,分配的内存块应该写作(MAXFILELEN * sizeof(char)),但是大多数程序员喜欢将它简化为MAXFILELEN,因为对于所有的平台来说sizeof(char)的值等于1。然而,当你用TCHARS代替多个字符时,很容易忘记这种固有的概念,于是将代码编写成下面的形式:

int myfunc(TCHAR *p)
{
TCHAR *pszFileName;

PszFileName = (TCHAR*)malloc(MAXFILELEN);
If (pszFileName)
tcsncpy(pszFileName, p, MAXFILELEN);
/*etc*/


  这是不行的。它马上会导致出错。这里的错误在于malloc函数中指定变量大小为bytes,然而_tcsncpy函数中使用的第三个变量却指定为TCHARs而不是bytes。当UNICODE被定义时,一个TCHAR等于两个字节数(bytes)。

  上述代码段应该改写为:

int myfunc(TCHAR *p)
{
TCHAR *pszFileName;

PszFileName = (TCHAR*)malloc(MAXFILELEN * sizeof(TCHAR));
if(pszFileName)
tcsncpy(pszFileName, p, MAXFILELEN);
/*etc*/


--转载自 蓝色理想数码站

 

Win CE开发特性忠告 Windows CE与平台开发  Windows CE是微软为嵌入式设备打造的操作系统,而嵌入式设备可谓多种多样,这就要求CE操作系统必须是可定制的,所以微软将Windows CE设计为模块化的操作系统。说简单点,我们可以把Windows CE想像成一盒积木,你可以用积木搭建出任何物体,但不一定要把所有的积木都用上。  Windows CE搭建出来的物体就是平台,是适应某种有固定标准的嵌入 阅读详情

相关推荐

简述Win CE开发特性忠告(3)

VS.net开发入门与WIN CE开发忠告   VS.net开发入门   又来到我们的.NET时间了,我怎么说又?最近大家都被JAVA和.NET搞得头昏脑胀了吧?不管大家怎么吵,.NET Compact Framework对于手中缺少开发利器的嵌入式程序员无疑是一大福音。Visual Studio .NET 2003完全支持对移动设备的开发,好了,让我们开始一段奇幻的.NET之旅吧。   打开V

1239

简述Win CE开发特性忠告(2)

EVB/EVC开发入门   EVB开发入门   微软已经宣布EVB不再支持Windows CE.NET,所以EVB的最终版本是3.0。但由于EVB的易上手性和快速开发的特点,在VS.NET横空出世之前,它成为Windows CE平台上快速开发的不二之选。现在EVB仍然适合Windows CE 3.0平台上小型应用程序的快速开发。如果您不是专职的Windows CE程序员,而只是需要在Windows

1098

Win CE开发特性忠告(转)

最近一段时间,移动设备开发越来越多的成为了程序员社区的话题。移动设备主要包括智能手机和PDA,是嵌入式开发中很重要的一个方向。在智能手机领域被大多数手机厂商支持的J2ME无疑是领头羊,微软CE平台的SmartPhone也逐渐成为...

cuankuangzhong6373的博客 285

简述Win CE开发特性忠告(1)

Windows CE与平台开发 最近一段时间,移动设备开发越来越多的成为了程序员社区的话题。移动设备主要包括智能手机和PDA,是嵌入式开发中很重要的一个方向。在智能手机领域被大多数手机厂商支持的J2ME无疑是领头羊,微软CE平台的SmartPhone也逐渐成为关注焦点。一直不温不火的PDA市场,也在行业应用领域有所收获,Pocket PC由于其开发Windows平台的一致性而得到了开发

2139

简述Win CE开发特性忠告(5)

不要将Unicode 字符串放入奇数内存地址   在Intel系列处理器上,你可以在一奇数内存地址储存任何变量或数组,不会导致任何致命的错误影响。但在H/PC上,这一点不一定能行 ? 你必须对大于一个字节的数据类型小心谨慎,包括定义为无符号短型(unsigned short) 的wchar_t。当你设法访问它们的时候,将它们置于奇地址会导致溢出。   编辑器经常在这些问题上提醒你。你无法管理堆栈变

972

Windows CE开发之起步停车

Windows CE开发之起步停车        最近一段时间,移动设备开发越来越多的成为了程序员社区的话题。移动设备主要包括智能手机和PDA,是嵌入式开发中很重要的一个方向。在智能手机领域被大多数手机厂商支持的J2ME无疑是领头羊,随着多普达推出了515手机,基于微软CE平台的SmartPhone也逐渐成为关注焦点。一直不温不火的PDA市场,也在行业应用领域有所收获,Pocket PC由

aawolf = new Mobile.MVP 2万+

Windows CE 软件开发入门

MicrosoftWindows CE是紧凑的、高效的和可升级的操作系统,它被广泛的应用在各种嵌入式式的产品中,从手持电脑到专门的工业控制器和消费用电子产品中。Windows CE已经通过了其自身的能力证明:它能够满足32位嵌入式式程序开发的需求。同样重要的是:Windows CE使嵌入式式系统的设计者得以充分利用Microsoft的32位基于Windows开发工具的全部的函数。    嵌入式的

黑色幽灵的专栏 5559

Win CE版本研究

 Windows CEWindows Mobile: Windows Mobile 不等于windows ce ,Windows Mobile 是把windows ce作为它的内核,比如,WM 2003 的内核是WinCE 4.x, WM 5.0 的内核是WinCE version 5,Windows Mobile主要针对SP,PPC等移动设备。Windows Mobile与Win

Leroy_xie的专栏 3195

Windows CE 开发初步

       许多开发人员都尝试了基于无线装置的软件编程,然而这些思想达于成功的关键之处在于他们能否深入了解Windows CE的功能和缺点。本文就此介绍了Windows CE的一些基本特性,并指出过渡到基于无线装置的软件开发所应具备的知识。 开始Windows CE操作系统支持很多特性,并能被很多一系列不同的CPU编译。她支持多线程,包含多种可选择的GUI。诸如她的堂兄弟一样,Windows C

VC && Windows CE 编程CLUB 3162

Windows CE开发初步

 基于Windows CE的Pocket PC平台的开发为了在Windows CE3.0系统中进行开发,你必需下载微软的eMbedded Tools 3.0软件,这一套软件包含了eMbedded Visual C++ 3.0和 eMbedded Visual Basic 3.0,同时她也提供了基于Pocket PC、掌上PC、变携式PC的所有SDK。Visual C++和Visual Ba

IcyCoffee 1364
上一篇: 简述Win CE开发特性及忠告(3)
下一篇: Word中的秘密(MS的恶作剧)
catally
博客等级 码龄22年 4粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值