博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于WinCE 5.0环境项目开发心得总结
阅读量:4165 次
发布时间:2019-05-26

本文共 1302 字,大约阅读时间需要 4 分钟。

最近一个关于PDA设备的项目刚结束,在此将这次基于WinCE 5.0环境开发项目的一些心得体会做个总结。

1、若你是拿原来支持多字符编码的工程做修改的话,需要注意Unicode字符与ASCII字符的字符串之间的转换问题。

标准C++的string 和 char都是ASCII字符,若赋值给宽字符,需要将他们转换成Unicode,如下

TCHAR chMsg[2*1024];

 memset(chMsg, 0, sizeof(chMsg));
 ::wcscpy(chMsg, CComBSTR(strMsg.c_str()));

 

Unicode宽字符的字符串,如CString 和 TCHAR,若赋值给ASCII字符的字符串,需要将他们转换成ASCII,如下

string strTemData = " ";

CString cstrTemData(_T(" "));

strTemData = ::CT2A(cstrTemData);

 

备注:

不要直接使用CString类型的字符串的Format 函数将ASCII字符的字符串转换成CString类型的字符串,否则传递过去的值会是乱码。

 

2、若要让某个窗口总是在最前面显示,可以直接设置该窗口的属性" Set Foreground",将他设置为 true就可以了。

3、不要在一个窗口的OnInitDialog初始化函数中创建线程,否则有时会出现打开该窗口,该窗口不显示出来的问题。若要解决这个问题,可以在实现WM_SHOWWINDOW消息。本人因为这个问题,纠结了很久==!

4、在刚新建立智能设备项目时,VS2008向导默认支持英文的,若要在窗口上输入中文可以正常显示的话,就需要一开始创建时选择支持中文简体的,如图

 

5、用VS2008开发基于WinCE 5.0或6.0环境的程序,若没有装对应的模拟器(建议装个对应环境的模拟器最好),也可以使用默认的模拟器Pocket PC 2003 SE Emulator开发,但编译产生的.exe文件是不能直接在PC上双击执行的,要想可以直接在PC双击执行起来,应该装个对应Win CE环境的模拟器就可以了。若是不用模拟器,想直接连接到装有WinCE 5.0或6.0环境的设备上进行调试或运行程序,应该进行如下图的配置

点击菜单栏的“Tools”选项  --> “Options...” -->“Device Tools” --> “Devices”

点击菜单栏的“Tools”选项 --> “Connect To Device ...”

点程序的属性配置页,在“Deployment”中选择“Windows CE Device”

在工程的上面选择“Windows CE Device”

6、若是连接到设备上进行调试或运行程序,程序用到一些dll动态库,应该将那些dll动态库放到设备的应用程序目录中产生的目录(用VS编译执行程序就会在设备中的应用程序目录中产生)中,否则在调试或运行时会出现找到不到模板的错误

7、基于WinCE平台的设备若要与PC之间可以互传资料,如PDA H802设备,可以参照下图所示进行

你可能感兴趣的文章
Linux里设置环境变量的方法(export PATH)
查看>>
c语言中strlen所输出的字符长度到底要不要再加1 (指'\0')?
查看>>
C语言双指针的常见用法
查看>>
UBUntu解决fatal error: sqlite3.h: No such file or directory,//原因是系统没有安装函数库
查看>>
String 类 的c_str()函数
查看>>
sysconf()系统函数详解
查看>>
调整内核printk的打印级别(启动脚本中运行 echo 0 4 0 7 > /proc/sys/kernel/printk 关闭所有内核打印)
查看>>
临时关闭打开console办法
查看>>
printf()函数中\t,水平制表符,空格的个数,对齐打印
查看>>
结构体测试用例struct(指针用例)结构体里面含有指向自己的指针怎么用
查看>>
Linux中gmtime和localtime的区别(time_t格式转换为tm格式)
查看>>
如果函数传递的是结构体,小心在调用的参数中给指针重新赋值(拿tm结构体举例)
查看>>
extern用法
查看>>
extern"C"的使用
查看>>
使用nm命令获取linux的可执行文件里或动态库中的所有函数名称
查看>>
关于free命令 内存的详细介绍以及如何手动释放内存
查看>>
Linux使用free命令buff/cache过高
查看>>
如何定义结构体变量及如何使用
查看>>
c语言中 有无bool 这个变量
查看>>
SVN错误:cannot show diff because of inconsistent of newline in the file 的解决方法
查看>>