- 博客(175)
- 资源 (77)
- 收藏
- 关注
原创 Windows 反消息钩子(2)
Windows消息钩子一般都很熟悉了。它的用处很多,耳熟能详的就有——利用键盘钩子获取目标进程的键盘输入,从而获得各类密码以达到不可告人的目的。朋友想让他的软件不被别人的全局钩子监视,有没有办法实现呢?答案是肯定的,不过缺陷也是有的。 一、全局钩子如何注入别的进程 消息钩子是由Win32子系统提供,其核心部分通过NtUserSetWindowsHookEx为用户提供了
2012-07-31 13:32:53 3563
原创 Windows 反消息钩子(1)
消息钩子在Windows编程中有着非常广泛的应用,它可以任意拦截Windows系统,这个以消息为驱动的系统中的绝大多数消息类型。一方面这给编程者带来了巨大的灵活性,另一方面也埋下了巨大隐患,大多数窃密软件都使用这种方法。此篇文章给您提供一种钩子的反拦截方法,希望对您有所帮助。文章中使用了API钩子,您之前必须对此技术有一定了解。 为求完整,文章分为两部分,第一部分为
2012-07-31 13:24:38 5734 2
原创 Windows mobile 常用功能键值对应表
功能键值对应表#define VK_TSOFT1 VK_F1 // Softkey 1#define VK_TSOFT2 VK_F2 // Softkey 2#define VK_TTALK VK_F3 // Talk#define VK_TEND VK_F4 // End#define VK_THOME VK_LWIN // Home#define VK_TBACK VK_ESCA
2012-07-26 17:28:19 1827
原创 文本文件和二进制文件在存储时的区别
1、二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放,也就是说存放的是数据的原形式。2、文本文件是把数据的终端形式的二进制数据输出到磁盘上存放,也就是说存放的是数据的终端形式。我们有必要把需要存储的数据分为字符数据和非字符数据两类。当你有数据要存储的时候.首先要考虑的问题并不是你要选择用二进制文件还是文本文件来进行存储,而是首先得考虑你要存储的数据是
2012-07-26 15:42:17 18344
原创 深度解析为何printf("%f",45);结果为零
如题,出现这种情况的原因有两个:1、整形数和浮点数在内存中的存储格式和布局不同(理解浮点数的内存布局和表示方式,请参考:http://blog.csdn.net/songjinshi/article/details/7753777)2、printf在进行参数入栈时是根据实参的类型进行入栈,而不是根据格式化字符中指定的类型,具体入栈过程如以下所示。所以造成入栈实参的类型和实际函数使用的类型不
2012-07-17 11:35:06 3817
原创 应届生工作后的迷茫...
好久没有在CSDN正儿八经的写过博客了,不知道是我变懒了,还是工作太忙了,我想是第一点,偶尔到CSDN我的博客上看一下,发现访问量快突破八万次了,这一点让我有点意外,因为我都好久没有更新过博客,只是偶尔转载一个或者写一些简单的备忘的东西,下面废话少说,进入正题。 从11年12月份开始实习到现在转正,差不多历经了八个月的时间,在这八个月的时间里我从一个学院派慢慢转变为工程派,这个从理
2012-07-08 21:01:42 7884 13
原创 swprintf和sprintf的使用
C/C++ code char szA[100]; //An ANSI string bufferWCHAR szW[100]; //A Unicode string buffer//Normal sprintf:all strings are ANSIsprintf(szA, "%s","ANSI Str");//Converts
2012-04-25 12:06:31 7386
原创 codepage
字符内码(charcter code)指的是用来代表字符的内码.读者在输入和存储文档时都要使用内码,内码分为 单字节内码 -- Single-Byte character sets (SBCS),可以支持256个字符编码. 双字节内码 -- Double-Byte character sets)(DBCS),可以支持65000个字符编码.主要用来对大字符集的东方文字进行编码
2012-04-13 20:18:33 1927
原创 字符编码知识以及相互之间的转换
UTF-16(UCS-2)是Unicode的其中一个使用(实现)方式,大部分字符采用定长的字节存储,即字符属于宽字符,但UTF-16却无法兼容于ASCII编码。UTF-8是Unicode的一个使用(实现)方式,编码格式兼容ASCII编码,采用变长的字节存储字符,即字符属于多字节字符。windows(C语言)在使用unicode的时候就是采用的UTF-16,即宽字符。UTF-16比起
2012-04-13 17:44:45 3043
原创 用户角度解析视窗图形操作系统的运行和实现机制
从用户角度看,整个视窗图形操作系统的运行和实现机制:一、用户通过输入设备进行各种操作,然后通过输出设备看到操作结果,各种图形任务处理和显示。二、图形应用程序向窗口管理器获取各种消息,包括用户输入,应用程序状态改变等,然后按照程序预先设定好的方式处理消息,最终将处理完的结果下发给窗口管理器。三、窗口管理器向系统消息队列获取各种消息,然后根据一定的算法进行仲裁,下发到最终应用程序,
2012-04-11 13:56:41 1708
原创 视窗图形系统的两种事件消息实现机制
1、消息队列(同步获取消息,主动查询)分为总消息队列和窗体消息队列两种:一、系统总消息队列从输入设备获取用户的各种操作,生成总消息队列。二、应用(窗体,包括子窗体和控件,下面统称应用)消息队列每个应用都有一个自己的消息队列,应用根据需要向总消息队列注册自己需要的消息事件,然后总消息队列根据一定的算法(包括各种事件消息的处理机制,活动应用,窗体处理等)得到最终需要分发的应用,然后
2012-04-11 11:51:22 1551
原创 wince下实现GPRS上网,程序控制拨号
一、打开GPRS网络数据连接int platform_open_gprs_connect(void){ if(WINCE_GPRS_NODE.hRasConn) { return 1; } { RASDIALPARAMS RasDialParams; //RAS结构包含用来建立RAS的参数 DWORD dw
2012-04-10 16:35:10 1938
原创 wince&mobile的GPS开发
1、获取GPS数据的两种方式:一、直接访问GPS关联的串口,读取串口数据。像访问普通串口设备一样,调用 CreateFile等一系列相关API,但是要事先知道GPS硬件所关联的串口设备。。二、使用系统API。Function Description GPSCloseDeviceCloses the connection to the
2012-04-09 18:19:05 1273 1
原创 Wince下蓝牙开发的问题
这几天在做wince下的蓝牙开发,经过一番资料搜索之后发现了很多有用的帖子和经验,但是经过实际验证发现问题多多,首先就是一个wince和mobile不分的误区,很多API和库wince上有而mobile上没有,而大多数则是mobile上有wince没有,比如最简单的两个蓝牙的API:BthGetMode和BthSetMode,很多网上的文章和帖子都是转载过来的说的是wince,其实是mobile上
2012-03-22 14:57:47 4047 1
原创 关于动态链接与静态链接
大家都知道应用程序有两种链接方式,一种是静态链接,一种是动态链接,这两种链接方式各有好处。程序的静态连接还是动态连接是根据编译器的连接参数指定的。所谓静态链接就是在编译链接时直接将需要的执行代码拷贝到调用处,优点就是在程序发布的时候就不需要的依赖库,也就是不再需要带着库一块发布,程序可以独立执行,但是体积可能会相对大一些。(所谓库就是一些功能代码经过编译连接后的可执行形式。)所谓动
2012-03-22 14:48:31 16910 3
原创 一道小题(3)
#includevoid main(){ int a = 47; printf("%d", printf("%d", printf("%d",a))); printf("\n");}运行结果为:4721
2012-03-16 10:39:03 1279 3
原创 一道小题(2)
十进制整数,计算对应的二进制数包含多少个1,用位操作。1、技巧while(a>0) {a&=(a-1);count++;}2、易懂while(a) { if(a&1==1) { i++; } a=a>>1; }
2012-03-16 10:28:54 1095
原创 断点续传简单原理介绍
断点续传,也就是要从文件已经下载的地方开始继续下载。所以在客户端浏览器传给Web服务器的时候要多加一条信息--从哪里开始。 下面是内容传递请求信息给Web服务器,要求从2000070字节开始。 GET /down.zip HTTP/1.0 User-Agent: Netfront3 RANGE: bytes=2000070- Accept:
2012-03-05 11:19:27 1926
原创 堆栈以及常用的几种堆栈实现原理
堆栈是一种数据结构,按先进后出(First In Last Out,FILO)的方式工作,使用一个称作堆栈指针的专用寄存器指示前的操作位置,堆栈指针总是指向栈顶。1、递增堆栈:向高地址方向生长2、递减堆栈:向低地址方向生长3、满堆栈:堆栈指针指向最后压入堆栈的有效数据项4、空堆栈:堆栈指针指向下一个要放入数据的空位置
2012-02-27 16:32:45 5397
原创 wince下实现wifi无线网络的连接和配置(WLAN)
在 Windows CE 下自带有无线网卡的配置和连接程序,但是如果系统剪裁掉了资源管理器和任务栏,或者再CE的很多应用中,是不允许用户回到桌面去调用系统的连接程序的,这篇文章就来谈一下如何用那么可以利用微软自带的WZC函数来重新编写一个独立于系统的WIFI连接程序。 连接WIFI网络有这么几个步骤,第一步,要获取你自己的网卡,调用GetFirstWirelessNetwork
2012-02-16 13:18:45 43915 117
原创 wince6系统开发工具以及定制源码下载地址大全
Windows Embedded CE 6.0下载地址:用url地址加文件名,一共364个文件,3.76Ghttp://download.microsoft.com/download/a/0/9/a09e587c-4ff9-4a58-a854-56fe50b862b2/Windows Embedded CE 6.0.msitools.cab tools_platman.cab
2012-02-16 11:09:09 5075 2
原创 cygwin中文乱码(打开gvim中文乱码、安装svn后乱码)
1、修改.bashrc文件执行命令:cd ~打开.bashrc文件,添加以下内容:alias ls='ls --color --show-control-chars'export LESSCHARSET=latin1alias less='/bin/less -r'export LC_ALL=zh_CN.GBKexport LC_CTYPE=zh_CN.GBKe
2012-02-16 10:35:21 3118
原创 位图BITMAP格式分析(2)
前一段时间开发一个编码filter ,过程中出现了回放图像上下倒置的现象,百思不得其解,只好在程序中加了一段将数据倒置的代码,今天看梁老(呵呵,不知多老,反正是前辈拉)的《编程高手箴言》,里面有一段讲正向位图的,好像突然明白了些,便在网上查了一下,终于弄明白以前的现象是怎么回事。bmp位图的存贮方式应该是从下到上,从左向右。也就是说bmp位图的显示方式是第一排显示的是最后一行的数据。在我开发过
2012-01-17 18:11:36 4655
原创 位图BITMAP分析(1)
如今Windows系列已经成为绝大多数用户使用的操作系统,它比DOS成功的一个重要因素是它可视化的漂亮界面。那么Windows是如何显示图象的呢?这就要谈到位图(bitmap)。我们知道,普通的显示器屏幕是由许许多多点构成的,我们称之为象素。显示时采用扫描的方法:电子枪每次从左到右扫描一行,为每个象素着色,然后从上到下这样扫描若干行,就扫过了一屏。为了防止闪烁,每秒要重复上述过程几十次。例如我
2012-01-17 18:09:30 3874
原创 新手工作,如何正确的积累经验、如何更快的提升能力、过程是什么样的?
正确的积累经验:在实际工作中,要学习好的习惯,虽然你现在并不赞同,但是你要学习,并一直保持下去,因为人之所以有文明就是因为不断的学习和积累好的东西。不要盲目赞同别人,要先思考,要有自己的立场。不要高看自己,要虚心,要谦虚,要多听别人说,多学习别人的优秀的地方。更快的提升能力:不走弯路,就是最好的捷径。过程:人的提升不是直线上升的,也不是一直弧线上升的,而是像正弦波一样有
2012-01-06 10:55:52 3719 2
原创 一个新手的工作总结及展望(峰回路转,即将又回到了C/C++和Qt的怀抱)
2011年11月底开始进入公司工作,从刚开始的看文档,到交流学习,到练习,到最终开始写代码,用了2个星期。从工作以及生活中越发的感觉到时间的重要性,以及自己和别人相比的时间匮乏。虽然公司不大,刚刚成立,但是从进入公司开始,跟着主管一个多月,这段时间学到了很多东西,自己也成长了很多,从刚开始的不切实际,到现在的踏踏实实,确实变化很多。之前虽然一直想写些东西,但是一直没有好的时间,这次一起写一下吧
2012-01-06 10:47:51 2440
原创 宽字符处理函数和窄字符处理函数对应表
字符分类: 宽字符函数普通C函数描述 iswalnum() isalnum() 测试字符是否为数字或字母 iswalpha() isalpha() 测试字符是否是字母 iswcntrl() iscntrl() 测试字符是否是控制符 iswdigit() isdigit() 测试字符是否为数字 iswgraph() isgraph() 测试字符是否是可见字符 is
2011-12-26 14:57:02 2056
翻译 展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告
走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的10年的路程,有些心得体会你可以借鉴一下,觉得说得有道理的你就接纳,觉得说得没道理的,你就抛弃,以下是我发自内心的,给大家的忠告,特别是针对那些小弟弟妹妹们。01. 自己的户口档案、养老保险、医疗保险、住房公积金一定要保管好。由于程序员行业每年跳槽一次,我不隐瞒大家,
2011-12-22 14:11:44 4048 27
原创 工作20天之感悟(嵌入式开发)
不知不觉已经来到上海快一个月了,工作也差不多20天了,从实际工作中发现了很多问题,也学到了很多东西,明白了理论学习和实际工作的最大差别:思想停留和实际动手。 以前在学校的时候感觉自己还挺不错的,没事啃啃书,学习学习理论性的语法,有时还敲一些简短的代码。没有任务驱动,慢慢的就停留在哪里,无法前进了,并且自我感觉良好,我想这就是在学校学习理论的结果。现在工作了,在工作中最重要的不是你的能
2011-12-15 18:01:55 2068 2
原创 (7)巩固一下C语言基础知识,谁动手,谁收获。
问题23: 编程解决如下问题(50 分) 。 有一个数学等式:ABCD*E= DCBA,式中的一个字母代表一位数字,试找出所有符合上述 要求的乘积式并打印输出。 问题24:编程解决如下问题(50 分) 。 请在整数 n=92081346718538 中删除 10个数字, 使得余下的数字按原次序组成的新数最 大。要求如下: (1)整数 n和删除数字的
2011-11-06 21:50:53 2052 4
原创 (6)巩固一下C语言基础知识,谁动手,谁收获。
问题21:有一个3×4的矩阵,要求编写程序找出每一行中最大值并与第一列交换。(20分)问题22:用指针实现:把一个整数插入到由小到大排列的数列中,插入后仍然保持由小到大的顺序。(20分)问题21实现代码:/* author:宋金时 *//* date:2011/11/04 */#include "Stdio.h"#include "Conio.h"
2011-11-06 18:54:34 1901 5
原创 (5)巩固一下C语言基础知识,谁动手,谁收获。
问题18:编写一个函数InverseByWord(char*sentence),实现一个英文句子按单词逆序存放的功能,并给出测试程序。(50分)如:This is aninteresting programme .逆序后变为:. programme interesting an isThis问题19:编程完成数据加密。数据是五位的整数,加密规则为:每位数字都加上
2011-11-06 18:51:07 1639 2
原创 (4)巩固一下C语言基础知识,谁动手,谁收获。
问题13: 编程解决如下问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡, 问鸡翁,鸡母,鸡雏各几何?(20分)问题14:编程实现:有二维数组a[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}},将数组a的每一行元素均除以该行上绝对值最大的元素,按行输出新数组。(20分)问题15: 编程:设
2011-11-06 18:35:38 1573
原创 (3)巩固一下C语言基础知识,谁动手,谁收获。
问题12:编写一个简单的通讯录管理系统。通讯录包括:姓名、通讯地址、邮编、联系电话,现编写一个通讯录管理系统,可以对通讯录进行输入、显示、查找,通讯录保存到一个文件中。(50分)(提示:可能用到以下库函数:malloc(),功能:分配size字节的存储区,用法:(类型 *)malloc(size *sizeof(你要定义的类型));包含于库中feof(),功
2011-11-06 18:12:05 1279
原创 (2)巩固一下C语言基础知识,谁动手,谁收获。
问题7:编写一个程序,让它有以下功能:从键盘上输入一个五位数,对此整数中的五个数值进行从大到小排序,形成一个新的五位数,输出这个整数。(15分) 问题8:输入年、月、日,输出该日期是该年的第几天。(25分) 问题9:利用数组实现数据的存储。将学生的学号和成绩存储在数组中,利用循环计算出数组中存储学生的平均成绩,找出高于平均分的学生信息并输出。(20分)
2011-11-06 18:04:27 1933 1
原创 (1)巩固一下C语言基础知识,谁动手,谁收获。
参加的一个比赛里面的基础性的C语言小程序编写,大家可以练习一下,巩固一下基础知识。不要拷贝别人的代码,自己亲自动手写一下,别管是否简单。 问题1: 编程解决如下数学问题:有12升水,怎样利用一个8升和一个5升的容器将水分为两个6升?要求以如下格式打印出分水步骤。(20分) a12 b8 c5 12 0 0 * * *( “*”表示当前状态
2011-11-04 18:12:06 2669 4
原创 C/C++转义字符
转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) 008 \f 换页(FF) 012 \n 换行(LF) 010 \r 回车(CR) 013 \t 水平制表(HT) 009 \v
2011-10-21 20:10:04 1437
原创 C语言结构体中位域(位段)的使用
#include #include struct bit{char i1:1;char i2:1;char i3:1;char i4:1;char i5:1;char i6:1;char i7:1;char i8:1;};int main(){ char x=1; struct bit *pb=(struc
2011-10-20 21:23:31 1692
Drive_show_black_screen_issue_analysis_report
2015-06-01
BOOT_COMPLETED issue analysis report
2015-06-01
Device_Provisioned_issue_analysis_report
2015-06-01
Boot process and Manage of the Activity
2015-06-01
SQLite_Expert_Professional_3.1.9_XiaZaiBa.exe
2011-09-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人