
C/C++
mypyg
这个作者很懒,什么都没留下…
展开
-
C语言测试:想成为嵌入式程序员应知道的0x10个基本问题(转)
英文原文见:http://www.embedded.com/2000/0005/0005feat2.htm 英文标题:A 'C' Test: The 0x10 Best Questions for Would-be Embedded Programmers 作者:Nigel Jones 译者:RTOSFUN E-Mail:rtosfun@gmail.com ...原创 2010-12-17 19:35:47 · 135 阅读 · 0 评论 -
由函数调用约定引起的问题
这两天写ap,调用了系统动态库中的函数。按照文档,QLibray,load,resovle,执行都没问题,但是release版本发布时出问题了,只要执行必然内存访问错误崩溃退出。开始跟踪调试,注释掉QLibrary所有相关的代码,执行ok;只保留到load,执行ok;保留到resolve,执行ok;执行resolve的函数,运行崩溃。于是怀疑是调用时堆栈约定有问题,将函数声明为...原创 2010-12-17 20:22:03 · 185 阅读 · 0 评论 -
将窗口嵌入桌面
在试用某些Ap时,发现有些Ap的窗口可以嵌入桌面,这样Win+D键的时候就可以看到,很方便。在网上搜索了一下,原理就是将窗口的父窗口设置成桌面。这个父窗口在Xp下通过FindWindow("Program manager","progman")找到,但是在win7下这个方法找到的父窗口就不好用了。用spy++看了之后,写了下面一段代码 findDesktopIconWnd(),在xp和win7...原创 2010-12-17 20:20:25 · 248 阅读 · 0 评论 -
Windows Mobile 6 仿真器 中文rom设置
问题:使用vs2005创建的windows mobile 项目调试,仿真器启动总是启动英文的rom,导致中文字体都无法显示。解决方法:(一)右键点击项目-》属性-》配置属性-》部署-》部署设备:把这个部署设备改为:CHS Windows Mobile 6 Classic Emulator 就可以启动中文rom了。 这些chs开头的都是中文的rom。具...原创 2010-12-17 19:55:33 · 199 阅读 · 0 评论 -
glib中hash表函数的使用(ghash)
在使用ghash看其文档时对insert的介绍是如果key值相同的value再插入时会被替换,对于判断key值相等的标准不太清楚,是hash值相等的话发生hash碰撞时不就麻烦了,于是结合文档以及其源代码,自己写代码做了下验证,结果如下文描述。 1.创建新hash表:GHashTable* g_hash_table_new ...原创 2010-12-17 19:54:41 · 757 阅读 · 0 评论 -
GSource 创建时各函数的用处
1.prepare: 进入睡眠之前,在g_main_context_prepare里,mainloop调用所有Source的prepare函数,计算最小的timeout时间,该时间决定下一次睡眠的时间。2.check: poll被唤醒后,在g_main_context_check里,mainloop调用所有Source的check函数,检查是否有Source已经...原创 2010-12-17 19:50:01 · 306 阅读 · 0 评论 -
使用source insight 宏来插入doxygen可处理的注释
宏文件如下。 设置快捷键后,双击高亮要注释的内容,使用快捷键触发即可。 可自动识别普通:在头部添加宏:在末尾添加注释变量:在末尾添加函数:在头部添加,并自动识别函数个数类:在头部添加 代码如下:保存为m.em即可加入source insight macro insert_func_header_...原创 2010-12-17 19:43:58 · 519 阅读 · 0 评论 -
使用GCC的参数跟踪程序运行过程
当接手新项目时,通过此方法可以迅速了解程序运行期间各个函数的调用关系,来帮助熟悉代码。 首先:gcc编译时加上参数 -finstrument-functions 。加上此参数则需要自己实现约定好的4个函数,通过这4个函数来实现跟踪。4个函数的实现代码在gmail。 通过这4个函数,将每次调用时的函数地址输出到文件,然后使用addr2line转...原创 2010-12-17 19:42:29 · 217 阅读 · 0 评论 -
使用Doxygen生成中文文档
Doxyfile里面三个变量要配置一下: DOXYFILE_ENCODING = gb18030 //Doxyfile 本身的编码OUTPUT_LANGUAGE = chinese //输出的语言INPUT_ENCODING = gb18030 //输出的编码 在生成的时候,执行 doxygen:...原创 2010-12-17 19:41:50 · 387 阅读 · 0 评论 -
setitimer的用法
struct itimerval{struct timeval it_interval;struct timeval it_value;} ;it_value 定时器在这个值后第一次启动it_interval 是定时器间隔,如果所有内容都不为0,则定时器以这个值reset,也就是会多次发生。...原创 2010-12-17 19:38:27 · 189 阅读 · 0 评论 -
想成为嵌入式程序员应知道的0x10个基本问题(转)(二)
8. 关键字volatile有什么含意?并给出三个不同的例子。 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: 1). 并行设备的硬件寄存器(如:状态寄存器) ...原创 2010-12-17 19:36:48 · 115 阅读 · 0 评论 -
Windows GUI 程序使用中终端调试
在Windows下调试GUI程序时,打开终端,方便调试,cout的字符流又滚滚而来了。AllocConsole(); freopen("CONOUT$","w+t",stdout); freopen("CONIN$","r+t",stdin);最后的时候释放console即可。FreeConsole();...原创 2010-12-17 20:24:36 · 137 阅读 · 0 评论