博 文
很多人在安装PB5.0的时候出现要插入CD2导致无法安装。经过多次尝试发现是因为用虚拟光驱镜像安装导致,所以初夏你这个问题的时候建议大家不要镜像安装,直接诶解压文件安装就解决了
大家都知道sscanf是一个很好用的函数,利用它可以从字符串中取出整数、浮点数和字符串等等。它的使用方法简单,特别对于整数和浮点数来说。但新手可能并不知道处理字符串时的一些高级用法,这里做个简要说明吧。
1. 常见用法。
以下是引用片段: charstr[512]={0}; sscanf("123456","%s",str); printf("str=%s",str);
2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。
以下是引用片段: sscanf("123456","%4s",str); printf("str=%s",str);
3. 取到指定字符为止的字符串。如在下例中,取遇到空格为止字符串。
以下是引用片段: sscanf("123456abcdedf","%[^]",str); printf("str=%s",str);
4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。
以下是引用片段: sscanf("123456abcdedfBCDEF","%[1-9a-z]",str); printf("str=%s",str);
5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。
以下是引用片段: sscanf("123456abcdedfBCDEF","%[^A-Z]",str); printf("str=%s",str);
其实让一个程序在wince里启动和windows里差不多,直接设置其为启动项,这个有几个方法。一个就是制作一个快捷方式,指向我们的应用程序如app.exe,然后将快捷方式放到\windows\startup下面。 步骤如下:(假设app.exe已经拷贝到windows下面) 1 在pb中创建一个文件,文件类型选txt,然后命名为.lnk后缀,假设名字为test.lnk 2 编辑其内容为: 16#\windows\app.exe。备注:前面的16是# 后面所有字符的总和,包括空格。Wince的帮助文档上说这么定义就行,但是我尝试后,最后down到目标机上面时提示找不到文件,在wince里查看这么创建的test.lnk的属性,发现其指向\windows\app.exe后面还有两个方框,因此不对,我的解决方法是修改test.lnk的内容为16#"\Windows\app.exe" 3 编辑好lnk文件内容后在pb中修改project.bib。在files段后面添加下面一行:(和添加别的文件到image中类似,见我的《WinCE中如何向image中添加文件》,也要在pb的flatform菜单的setting下添加build语句,不再赘述) test.lnk $(_FLATRELEASEDIR)\test.lnk NK S 在project.dat中增加下面一行: Directory("\Windows\startup"):-File("test.lnk","\Windows\test.lnk") 这样后系统启动后就会自动启动我们的程序了。
另...
F1 显示当前程序或者windows的帮助内容。 F2 当你选中一个文件的话,这意味着“重命名” F3 当你在桌面上的时候是打开“查找:所有文件” 对话框 F10或ALT 激活当前程序的菜单栏 windows键或CTRL+ESC 打开开始菜单 CTRL+ALT+DELETE 在win9x中打开关闭程序对话框 DELETE 删除被选择的选择项目,如果是文件,将被放 入回收站 SHIFT+DELETE 删除被选择的选择项目,如果是文件,将被直 接删除而不是放入回收站 CTRL+N 新建一个新的文件 CTRL+O 打开“打开文件”对话框 CTRL+P 打开“打印”对话框 CTRL+S 保存当前操作的文件 CTRL+X 剪切被选择的项目到剪贴板 CTRL+INSERT 或 CTRL+C 复制被选择的项目到剪贴板 SHIFT+INSERT 或 CTRL+V 粘贴剪贴板中的内容到当前位置 ALT+BACKSPACE 或 CTRL+Z 撤销上一步的操作 ALT+SHIFT+BACKSPACE 重做上一步被撤销的操作 Windows键+M 最小化所有被打开的窗口。 Windows键+CTRL+M 重新将恢复上一项操作前窗口的大小和位置 Windows键+E 打开资源管理器 Windows键+F 打开“查找:所有文件”对话框 Windows键+R 打开“运行”对话框 Windows键+BREAK 打开“系统属性”对话框 Window...
格式输出小结:(1)最常用的格式是%d,含义是以10进制形式打印一个整数。如果输出的整数是负数,则,输出的第一个字符就是‘-’号(2)%u格式与%d格式类似,只不过要求打印无符号10进制整数。(3)%o格式请求输出8进制整数(4)%x和%X格式请求输出16进制整数。%x格式中用小写字母a,b,c,d,e,f来表示10到15之间的数%X格式中用大写字母A,B,C,D,E,F来表示10到15之间的数共同点:8进制和16进制整数总是作为无符号数处理的。(5)%s格式用于打印字符串,与之对应的参数应该是一个字符指针,待输出的字符始于该指针所指向的地址,直到出现一个空字符('\0')才终止。(6)%c格式用于打印单个字符:例如:printf("%c",c); 等价于 putchar(c);(7)%g,%f和%e这三个格式用于打印浮点值。%g格式用于打印那些不需要按列对齐的浮点数特别有用。其作用有二:一,去掉该数尾多余的零(没有达到六位的数)二,保留六位有效数字(多余六位的)%e格式用于打印浮点数时,一律显示地使用指数形式:例如:输出圆周率时是:3.141593e+00
两者的区别:%g格式打印出的数是总共6位有效数字%e格式打印出小数点后的6位有效数字
%f禁止使用指数形式来表示浮点数。因此圆周率输出为:3.141593(但注意它的精度要求:也是小数点后6位有效数字)(8)%%格式用于打印一个%字符。(9)%E和%G只是在输出时用大写字母(E)代替了小写字母(e)
另外需要注意的一些知识点:
***************************************对齐规则:(1)当指定宽度大于要输出位数时,数右对齐...
就是RS-232的串口通信协议。一个TX端,一个RX端,分别用于发送和接收数据。
具体如下:
串行通信协议分同步协议和异步协议。
(1)异步通信协议的实例——起止式异步协议
特点与格式:
起止式异步协议的特点是一个字符一个字符传输,并且传送一个字符总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求。其格式如图3所示。每一个字符的前面都有一位起始位(低电平,逻辑值0),字符本身有5~7位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位,或意味半,或二位停止位,停止位后面是不定长度的空闲位。停止位和空闲位都规定为高电平(逻辑值),这样就保证起始位开始处一定有一个下跳沿。
从图中可以看出,这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起始式协议。传送时,数据的低位在前,高位在后,图4表示了传送一个字符E的ASCAII码的波形1010001。当把它的最低有效位写到右边时,就是E的ASCII码1000101=45H。
起/止位的作用:起始位实际上是作为联络信号附加进来的,当它变为低电平时,告诉收方传送开始。它的到来,表示下面接着是数据位来了,要准备接收。而停止位标志一个字符的结束,它的出现,表示一个字符传送完毕。这样就为通信双方提供了何时开始收发,何时结束的标志。传送开始前,发收双方把所采用的起止式格式(包括字符的数据位长度,停止位位数,有无校验位以及是奇校验还是偶校验等)和数据传输速率作统一规定。传送开始后,接收设备不断地检测传输线,看是否有起始位到来。当...
读写文件是每个Windows软件开发人员都需要做的工作。可见这项工作是非常重要的,毕竟各种各样的数据都需要保存起来,以便作各种各样的分析,或者通过网络传送给别人。像大家用BT下载的电影,在那个BT软件里,就需要不断从网络里接收到数据,然后再把这些数据保存到文件里合适的位置,就可以生成跟发行者那里一样的文件,这样才可以播放出来。又比如我在玩《征途》的游戏里,刚刚打开游戏时,它就不断从服务器上下载更新的文件下来,然后保存到硬盘。WriteFile函数是用来写数据到文件,ReadFile函数是从文件里读取数据出来。但这两个函数不但可以读取写磁盘的文件,也可以接收和发送网络的数据,还有读写串口、USB、并口等设备的数据。在读写文件里,首先就是先打开文件,然后判断打开是否成功。在写文件时,同时要注意磁盘的空间是否满等问题。在读取文件时,往往需要读取不同位置的文件,比如要读取一个4G的视频文件,就不可能完全把它读取到内存里,因此就需要对文件进行定位读取。
函数WriteFile和ReadFile声明如下:
WINBASEAPI
BOOL
WINAPI
WriteFile(
__in HANDLE hFile,
__in_bcount(nNumberOfBytesToWrite) LPCVOID lpBuffer,
__in DWORD nNumberOfBytesToWrite,
__out_opt LPDWORD lpNumberOfBytesWritten,
__inout_opt LPOVERLAPPED lpOverlap...
串口编程:无论那种操作方式,一般都通过四个步骤来完成:(1) 打开串口(2) 配置串口(3) 读写串口(4) 关闭串口
设计步骤:1.初始化/打开串口打开串口的第一步是初始化或设置串口配置,目的是创建串口代理,整篇文章我们都将用文件句柄作为串口代理。创建端口句柄串口句柄是可以被用来存取的串口对象句柄,创建串口句柄的函数是CreateFile,如下代码所示: m_hComDevice = CreateFile ((LPCTSTR)pcPortId, // 串口号"\\\\.\\COM%d" GENERIC_READ | GENERIC_WRITE, // 打开为读写 0, // 独占方式 NULL, // 引用安全性属性结构,缺省值为NULL ...
Windows在加载DLL的时候,需要一个入口函数,就如同控制台或DOS程序需要main函数、WIN32程序需要WinMain函数一样。Windows必须查找并执行DLL里的DllMain函数作为加载DLL的依据,它使得DLL得以保留在内存里。这个函数并不属于导出函数,而是DLL的内部函数。这意味着不能直接在应用工程中引用DllMain函数,DllMain是自动被调用的。然而有些DLL并没有提供DllMain函数,应用工程也能成功引用DLL,这是因为Windows在找不到DllMain的时候,系统会从其它运行库中引入一个不做任何操作的缺省DllMain函数版本,并不意味着DLL可以放弃DllMain函数。缺省的 DllMain 函数在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs 键值中,所以这也被很多病毒所利用。PS:通过 svchost.exe 启动的程序,需要写成 NT-Service,入口函数是 ServiceMain。
Platform Builder在IDE菜单中提供了几种BuildOS命令和菜单选项,分别用于不同情况和不同阶段的操作系统创建。
Sysgen:运行Sysgen工具。一般与Copy Files to Release Directory After Build选项和Make Run_Time Image After Build配合,用于操作系统的初次创建或再次创建。在初次创建之后,如果添加或删除了新的Catalog项目,建议选择Clean Before Building选项,然后运行Sysgen再次创建。
Build and Sysgen:先运行Build命令,然后运行Sysgen工具。除非修改了WinCE提供的源代码,否则只要运行上面的Sysgen菜单命令就可以了。Build命令将重新编译WinCE提供的源代码。本菜单命令运行时间达数个小时,所以一般建议开发不要使用此命令。
Build and Sysgen Current BSP:对位于当前BSP目录下的文件,先运行Build命令,然后运行SySgen工具。
Copy Files to Release Diretory:使用Buildrel工具,将Sysgen之后的输出文件复制到%FIATRELEASEDIR%目录
make run-time image:使用makeing工具将sysgen之后复制到%FIATRELEASEDIR%下的文件打包成操作系统映像。
Stop Build:用于终止创建过程,创建过程将在当前执行命令结束后终止
Batch Build:用于在一次创建过程中对多个配置使用创建命令。如居于多个BSP下可以停...