自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(88)
  • 资源 (2)
  • 收藏
  • 关注

原创 创建rootfs

1. 编译bin等工具下载所需的busy-box,git clone git://git.busybox.net/busybox编译出现==============================================Makefile:422: *** mixed implicit and normal rules: deprecated syntaxMa

2018-01-25 17:45:16 402

原创 序言

2010年进入车载领域,历经多年,亲身体验了一次旧技术的淘汰,新技术的兴起。旧技术就是winCE,新技术便是linux+android。       回想青春4年大学时光,在侯捷老师的《深入浅出MFC》中泡着,希望能学会MFC,凭此一技之长,能有所建树。那时QQ很流行,每一年的新版QQ,都会带着新的UI特性,引起windows程序争相模仿。作为主打界面的MFC技术圈,自然也不甘落后,各种仿QQ

2018-01-24 18:26:42 214

原创 1.3. chromium源代码分析 - chromiumframe - 窗口类

view之window系列在_tWinMain中有这样两条语句:MainWindowDelegate delegate;view::Window::CreateNativeWindow(NULL, gfx::Rect(), &delegate);从这我们开始window相关的探索,目的就是要找到WNDCLASS与创建窗口的地方。window顾名思义就是windows上的窗口。

2015-06-04 20:01:07 936

原创 1.2. chromium源代码分析 - chromiumframe - 入口函数

ChromiumFrame的入口函数在main.cpp中,在sourceinsight中搜索main.cpp会发现有2个,我需要看的是test_view目录下的,test_base不在工程范围内,忽略掉。main.cpp中包含3个类和_tWinMain函数。_tWinMain就是我们要找的入口函数。我做了部分注释:int APIENTRY _tWinMain(HINSTANCE h

2015-06-03 18:14:36 1039

原创 哪些控件用到ON_NOTIFY 一问一答

问题:对button,我直接用WM_COMMAND是可以的。 现在我想尝试使用VC的ON_NOTIFY,怎么试也不起作用。解答:ON_NOTIFY是针对WM_NOTIFY的消息宏,而WM_NOTIFY是针对 ListCtrl,TreeCtrl,TabCtrl等通用控件使用的消息 button,listbox等基本控件是不会用到这个消息的 .

2014-05-05 15:47:34 641

原创 CSS position 的具体说明

利用CSS的position属性对元素定位,以下是position 属性规定元素的定位类型。absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。fixed 生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 "left", "top",

2014-05-05 15:47:31 333

原创 CWinThread 结束

正常退出CWinThread: m_pThread->PostThreadMessage(WM_QUIT,NULL,NULL);

2014-05-05 15:47:29 2137

原创 分治算法 - 八皇后

是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。八皇后问题可以推广为更一般的n皇后摆放问题:这时棋盘的大小变为n×n,而皇后个数也变成n。当且仅当 n = 1 或 n ≥ 4 时问题有解。/* * Copyright (c) leo * All rights re

2014-05-05 15:47:27 1352

原创 分治算法 - 汉诺塔

汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。算法:/* * Project : hannoi * File : main.c

2014-05-05 15:47:25 818

原创 SQLite C/C++

辅助工具工具     Sqlite数据库的管理工具有SQLiteManager、SqliteAdmin等。SqliteManager只有英文版,但功能强大,有个问题就是不支持ANSI字符集的汉字显示。其自带的帮助文档有SQL语句的详细介绍,对于不熟悉Sql语句的人来说很方便。而且它的很多操作都有自动的SQL语句提示,对于不常使用数据库的人来说也很好用。SqliteAdmin有绿色中文版,功能相对于

2014-05-05 15:47:22 483

原创 MAC地址

百度百科:MAC(Medium/Media Access Control)地址,或称为 MAC位址、物理地址,用来定义网络设备的位置,由48比特长,12个的16进制数字组成,0到23位是厂商向IETF等机构申请用来标识厂商的代码,也称为“编制上唯一的标识符”(Organizationally Unique Identifier)。是识别LAN(局域网)结点的标志。地址的24到47位由厂商自行分派,

2014-05-05 15:47:20 841

原创 WTL和ATL中CString冲突

WTL和ATL、MFC都有各自的CString类,类名相同,功能也都差不多,但是如果你同时用到了WTL和ATL,就会发生CString冲突的问题,从而编译器会报错,因为编译器不知道到底你要用的CString是哪个类。下面提供一组头文件包含的内容及顺序,如果你用到ATL和WTL,只要把下面这几行放到stdafx.h中,就搞定了。#include #include #include #include

2014-05-05 15:47:18 692

原创 SQLite基础

1. 介绍SQLite 是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。 其特点是高度便携、使用方便、结构紧凑、高效、可靠。 与其他数据库管理系统不同,SQLite 的安装和运行非常简单,在大多数情况下 - 只要确保SQLite的二进制文件存在即可开始创建、连接和使用数据库。如果您正在寻找一个嵌入式数据库项目或解决方案,SQLite是绝对值得考虑。2. 安装1)进入

2014-05-05 15:47:15 462

原创 C++ 重启网卡

许多网卡修改MAC后需要重启才能生效,下面介绍一下用编程实现重启网卡的功能:头文件: #includeAPI: 1. SetupDiGetClassDevs 获得设备信息列表 2.SetupDiEnumDeviceInfo 枚举设备信息 循环查找: { 3.SetupDiGetDeviceRegistryProperty(hDevInfo,&DevInfoData,SPDRP_CLASS

2014-05-05 15:47:13 3170 1

原创 拨号上网软件 C++ 实现

一般用户的拨号上网,利用的是Windows的Remote Access Service(RAS,远程访问服务)。下面介绍一下其在Visual C++下的实现。   Visual C++为我们提供了包含RAS API声明的“ras.h″头文件。要在程序中实现拨号上网功能,其大致过程如下: 1. 利用Modem拨号进行连接,应使用RasDial函数:  其声明如下:   DWORD RasDial(L

2014-05-05 15:47:10 3362 2

原创 常数模板类

templatebool>class A{public:  void fun()  {    std::cout  }};templatevoid Atrue>::fun(){  std::cout}int main(){  Atrue> test1;  test1.fun();  Afalse> test2;  test2.fun();  getchar();  return 0;}模板特例化

2014-05-05 15:47:08 580

原创 宏定义中的井号

在宏定义中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),即无论后面的宏变量是字符串还是常量,都当成字符来处理。#define  NAME(CLASSNAME)  OutputDebugStringA(#CLASSNAME)而## 被称为连接符(concatenator),用来将两个Token连接为一个Token。注意这里连接的对象是Token就行,而不一定是宏的变量

2014-05-05 15:47:06 621

原创 12岁的QQ会员有什么核心资产?

2000年12月18日,腾讯推出QQ会员服务,当时这个业务还叫“QQ俱乐部”,后来成为腾讯体系最成功的IVAS(互联网增值服务)。到今天,这个业务已经12年了,堪称中国互联网行业的爷爷级产品,但依然是腾讯的吸金大户。据说Facebook正是由于研究了腾讯的QQ会员等IVAS产品后,开始推出自己的虚拟货币。在这个C2C(copy to China)横行的年代,中国人能完成商业模式的反向输出,实在难得

2014-05-05 15:47:03 786

原创 正确的使用PeekMessage()

// 使系统无法进入IDLE模式,This PeekMessage loop will NOT let the system go idle.   for( ;; )   {      while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))      {         if (msg.message == WM_QUIT)            retu

2014-05-05 15:46:59 1455

原创 改变chrome 历史记录位置

谷歌chrome浏览器历史记录文件夹的位置在哪儿?该如何打开谷歌chrome浏览器历史记录文件夹呢?1.如果你是默认(没有更改userdata目录)的话,是在 C:\Documents and Settings\你的用户名\Local Settings\Application Data\Google\Chrome\User Data\Default(缓存 cookie 历史 扩展 脚本 相关设置。

2014-05-05 15:46:56 5215

原创 OnIdle的详细说明

CWinApp::OnIdlevirtual BOOL OnIdle( LONG lCount );返回值:如果要接收更多的空闲处理时间,则返回非零值;如果不需要更多的空闲时间则返回0。参数:lCount该参数是一个计数值,当应用程序的消息队列为空,OnIdle函数被调用时,该计数值就增加1。每当一条新消息被处理时,该计数值就被复位为0。你可以使用lCount参数来确定应用程序不处理消息时空闲时间

2014-05-05 15:46:54 2802

原创 win7 玻璃效果

首先必须打开win7相应的主题其次 #include#pragmacomment(lib,"dwmapi")需要win7 SDK。 再次先定义一个函数 HRESULTEnableBlurBehindWindowMY(HWNDwindow,                            bool enable =true,                            HRGN re

2014-05-05 15:46:50 565

原创 DWM界面开发

Windows Vista for Developers  – The Desktop Window ManagerAlthough Windows 95 (and Window NT 3.51) introduced Windows developers to non-rectangular windows, through the ability to set the window regio

2014-05-05 15:46:47 2441

原创 windows 研究 资料

http://download.microsoft.com/download/1/7/8/178a7fc2-d5fe-43e1-b43c-dffd0a58c751/msft012507vxpm.zip(深入研究Windows内部原理系列之一:Windows的昨天、今天和明天) http://download.microsoft.com/download/1/7/8/178a7fc2-d5fe-43

2014-05-05 15:46:45 382

原创 WDK/DDK中掉 error C2220: warning treated as error - no ‘object’ file generated

Free编译时:C2220: warning treated as error - no 'object' file generated出现这个问题是因为代码不严谨导致了。具体情况我也懒得去分析了。大家可以去搜索.对于懒人来说,解决方案是,修改当前驱动工程的sources文件,减低警告级别代码如下!if $(FREEBUILD)MSC_WARNING_LEVEL=/W1!elseMSC_WARNI

2014-05-05 15:46:43 707

原创 GDT 描述

摘自:http://blog.csdn.net/zdwzzu2006/article/details/4030882     如有侵权,请联系留言说明。=================================================================================================GDT是 一个段描述符数组表。段描述符  [Base

2014-05-05 15:46:40 483

原创 windbg 调试

cdb.exe -srcpath  [source file path] -y [.pdb file path] -z [dump file] -lines-lines 用于加载对应的源文件位置

2014-05-05 15:46:38 443

原创 驱动层IAT HOOK

还是看雪“新人交流投稿”版块的问题引起的(http://bbs.pediy.com/showthread.php?t=95230)。这次是有人询问sysnap的“学习笔记之钩住驱动程序导入表 ”(http://bbs.pediy.com/showthread.php?t=62316)中,为何要使用将驱动文件映像进内存再查找其导入表结构,而不是直接使用内存中已有的驱动内容来查找导入表。因为Sysna

2014-05-05 15:46:36 1325

原创 对的时间遇到了对的人

周克华拼了8年才抢了55.5万元,重庆女孩只是看了周克华一眼,获奖励60万元。这就是人生,关键是在对的时间遇到了对的人,只是因为在人群中多看了你一眼。

2014-05-05 15:46:33 462

原创 waveout**实现音频播放

最近想做一个播放,折腾了1周也没什么效果,最近在互联网上发现篇关于Waveout系列API实现音频播放器,收获还算不少。一、初始化设备bool WinAudioPlay::DevOpen(){    if (!m_bPalyStata)    {        WAVEFORMATEX    wfx;        ZeroMemory(&wfx,sizeof(WAVEFORMATEX));   

2014-05-05 15:46:31 679

原创 GPS 坐标转换

说到转换,先提几个概念:1.     84坐标系――美国的GPS就用这个坐标系,也就是说我们从GPS接收过来的地心大地坐标就是在这个坐标系下的;2.     54坐标系――中国常用的坐标系,一般来说,我们就是要得到该坐标系下的平面直角坐标;3.     地心大地坐标――就是经纬度表示的大地位置数据(B、L、H);4.     地心直角坐标--是以地心为原点,但表示方式采样直角坐标(X、Y、Z);5

2014-05-05 15:46:29 802

原创 NMEA[GPS] 数据格式

3.7数据消息  NMEA数据消息如表3.6所示。表3.6 数据消息GPGGAGPS定位信息GPGLL定位地理信息GPGSA当前卫星信息GPGST卫星伪距统计GPGSV可见卫星信息GPRMC推荐定位信息GPRRE伪距残差信息GPVTG地面速度信息GPZDA时间及日期信息RD1SBAS诊断信息(Crescent 专用NMEA消息)PCSI,1信标状态信息3.7.1 GPGGA      GPGGA消

2014-05-05 15:46:26 2181

原创 文件路径获取目录API

总有这样一个API被人遗忘在角落, 从文件路径获取目录名: Desc:Removes the trailing file name and backslash from a path, if it has them. Syntax: BOOL PathRemoveFileSpec( LPTSTR pszPath) HEADR:shlwapi.h LIBRARY:shlwapi.lib 提取文件

2014-05-05 15:46:24 743

原创 软件技术积累

各种RFC标准目录    http://www.ietf.org/rfc/ detours库: 可以对win32 的API hook,   http://research.microsoft.com/en-us/projects/detours/boost库: C++扩展标准库 , http://www.boost.org/

2014-05-05 15:46:22 395

原创 最大化 触发 WM_PAINT

当WM_PAINT不是由InvalidateRect产生时,即由最大化,最小化等产生时,或者移动产生(移动有时只会产生WM_ERASEBKGND消息)系统先发送WM_ERASEBKGND消息,再发送WM_PAINT消息.    如果处理WM_ERASEBKGND消息时返回FALSE,BeginPaint标记pt.fErase 为TRUE,如果处理WM_ERASEBKGND时返回TRUE,Begin

2014-05-05 15:46:20 411

原创 VirtualBox Windbg 双机调试配置

1、关闭虚拟机的操作系统 1.1选择“设置”按钮,在弹出的设置对话框中选择串口 1.2右边有出现4个端口选项卡,在端口1中选中启用串口 1.3端口模式设置为Host Pipe 1.4选中上面的创建通道,在Port/File Path: 中输入    \\.\pipe\com_12、主机 增加windbg快捷方式 ,在快捷方式的属性中,在目标后面加入下面的内容  -b -k com:pipe,por

2014-05-05 15:46:17 391

原创 滑块控件的一个设计缺陷

引用:http://blog.pfan.cn/clever101/26006.html   前一段时间写一个程序,其中涉及到在工具栏上创建一个滑块控件(功能大致是通过拖动滑块控件拖动客户区的一幅bmp图像)。从中我认识到MFC滑块控件的一个设计缺陷:它并没有足够的消息宏来处理它的一些动作。使用过滑块控件的朋友都有这样的经验:当用户拖动滑块时,滑动条控制将向其父窗口发送WM_HSCROLL消息,所以

2014-05-05 15:46:15 1156

原创 7z命令行快速压缩/解压

7z x archive.7z –oc:\dir1解压所有文件到c:\dir1并按目录结构层次存放7z a archive1.zip subdir\7z a archive1.zip subdir\*7z a archive1.zip subdir上述三种用法都会添加subdir目录中的文件到压缩包内。同时从subdir开始的所有的路径都会按目录结构被保存。

2014-05-05 15:46:12 2314

原创 驱动开发 环境搭建(VS2008+WDK+DDKWzard)

详细见:http://www.cnblogs.com/wangjunchao/archive/2010/09/15/DDKSetup.html一、VS2008的安装 二、WDK的介绍、下载、安装及配制 三、DDKWzard的介绍、下载、安装及配制

2014-05-05 15:46:10 451

原创 boost 访问JSON

1. 包含对应的头文件 #include 2.例子int  main(){  boost::property_tree::ptree ptree_root;  ptree_root.put("root","me_root");  boost::property_tree::ptree ptree_items;   {      boost::property_tree::ptree pt;  //

2014-05-05 15:46:08 508

TopMost置顶程序

保持其他窗口最上,免费,暂时不想开源,谢谢。有20个字了吧

2010-09-02

捉虫历险记——常见C++Bug大围剿

pdf格式,c++的优秀找茬集,非常实用的书籍

2007-06-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除