- 博客(63)
- 资源 (57)
- 收藏
- 关注
原创 linux 设备驱动模型
linux 设备驱动模型(linux device model):usb转串口设备插入centos主机中,内核处理全过程,包括如果得到usb设备中的配置信息,如何为其找到并加载一个合适的驱动程序,直到最后为其在/dev/中创建一个设备名称。设备驱动模型的生成(即/sys下的结点生成等工作)是bus-level logic和其它的子系统(如usb核心子系统)的工作,驱动工程师不需要针对设备驱动模型函数编程。设备有个注册函数,比如usb设备,参考资料:linux device driver.
2020-10-29 13:12:54
257
原创 android apk获取system权限
普通的用eclipse编译出来的apk程序,是不具有system权限的。想要具备system权限,可以使用signapk方法。C:\Program Files\Java\jdk1.8.0_102\bin>java-jar signapk.jar platform.x509.pem platform.pk8D:\workspace\GeeRobot\bin\geerobot.apk D:
2017-04-05 16:14:55
854
原创 理解android和linux内核的关系
理解android:最初学习android的时候,在网上经常看到的对于android的解释,经常是这样一句:“android是基于linux内核的”。我自己当初对于这句话的理解是,“android是在linux源码上改编的,是一种Linux”,当然现在看来,这是不对的。要真正理解android和linux内核的关系,可以这样来看: 0: 烧录ubuntu镜像和android镜像和“
2017-04-03 12:50:01
4415
原创 ndis协议驱动开发
协议驱动的开发流程:首先,一个协议驱动调用函数ndisRegisterProtocol()先把自己注册为协议驱动,此举的意义告诉windows,我是一个ndis协议驱动,并将约定好的回调函数的列表告诉windows,这样以后当有与网络相关的事件发生时,windows会调用相应的回调函数,并且在参数中传入适当的信息,当然这些回调函数是我们要自己实现的。 NdisRegister
2015-10-17 10:48:12
4937
原创 IRP和IO_STACK_LOCATION
当一个应用程序调用函数去操作某个设备时,比如调用createFile,deviceIOControl,等等时,I/O管理器为此函数创建一个IRP数据结构对象和一个IRP_STACK_LOCATION数据结构对象数组。(数组个数等于驱动程序堆栈上驱动的个数)。IRP对象中的数据成员是已经被填充好了的,其中有一个CurrentLocation是当前IRP_STACK_LOCATION堆栈单元的索引
2013-07-12 22:07:29
3691
原创 使用map文件找bug.
<br />转载文章, 以供后用.<br /> <br />对“仅通过崩溃地址找出源代码的出错行”一文的补充与改进<br /><br />作者:上海伟功通信 roc<br />下载源代码<br /><br />读了老罗的“仅通过崩溃地址找出源代码的出错行”(下称"罗文")一文后,感觉该文还是可以学到不少东西的。不过文中尚存在有些说法不妥,以及有些操作太繁琐的地方。为此,本人在学习了此文后,在多次实验实践基础上,把该文中的一些内容进行补充与改进,希望对大家调试程序,尤其是release版本的程序有帮助。欢迎各
2010-12-08 22:35:00
663
原创 oracle学习笔记
红字是问题. 绿字是当前进度.蓝字是重点.欲速则不达. 切勿急功近利!Introduction:How this book is structured
2010-12-05 13:58:00
835
原创 STL基础
1 It's important to realize that these templates are not class and member function definitions. Rather, they are instructions to the C++ compiler about how to generate class and member function definitions. 所以, 模板类是在编译时被替换的, 当编译时, 参数会替换成实际参数, 就像宏的处理一样.2
2010-11-01 22:38:00
419
原创 unit test(UT)
要见多识广, 必须要走南闯北. 做软件开发的, 时间并不等于经验. 年头长不代表经验多. 自从进入了软件开发的行业, 五年来一直在同一家公司, 做着相对简单的工作, 虽然自己也算是勤奋好学, 但是并没有积累到太多的项目经验, 所以距离一个技术高手的路还太远.进入了大公司, 才发现自己有好多好多不懂事东西, 有好多自己没见过没听过的东西. 发现自己原来就是一只井底这蛙.在我跳到同方的那一段时间, 做一个很大的项目, 代码据说上百万行, 编码有非常严格的规范, 类与类之间的分工非常的明确, 什么样的操作应该
2010-10-31 22:31:00
841
原创 c++异常处理
1 为什么我们一直强调不能使用返回错误值的方法来代替异常处理? 看这个例子: int add(int a, int b) { return a+b; } 在这里, 我们无法用返回错误值的方法来表示错误. 因为我们无法分辨返回的值是正确计算的结果还是错误码.2 在判断new是否成功时, 我们究竟是用返回值为null来判断还是用std::bad_alloc异常来判断? 当new无法成功分配内存时, 它会即返回null又抛出std::bad_alloc吗? 如果是, 它是怎么做
2010-10-30 00:38:00
430
原创 创建frame/view
一 创建一个frame,连同view和menu. 区别于template的另一种我不知道的方法。void CReportSampleView::OnTestTasklist(){ //CFrameWnd* m_pTaskFrame; if (m_pTaskFrame) { m_pTaskFrame->ActivateFrame(); return; } CCreateContext contextT; // if no context specified, generate one from th
2010-10-28 22:11:00
905
原创 MFC ATL 引发的思考
1 最近在做ATL, 始终不能理解ATL的实质, 掌握不了它的基本原理. 因为自己"掌握"了MFC, 它们同样是一套类库, 而MFC不但是一套类库, 更是一套Application Framework. 所以觉得理解ATL不应该是问题. 但是最后不但没有理解ATL, 反而发现自己根本就没有"掌握"MFC.比如MFC 与 windows sdk 之间的关系, 我只知道mfc包装了sdk, 但是究竟是怎么包装的,我根本不明白, 这也就是我不明白CWnd::FromHandle()的原因. 为什么这么多年来始
2010-10-27 23:31:00
1129
原创 debug与release区别
<br /> 今天又遇到一个问题, 我的程序在debug下可以好好的跑, 但是在release却不能正常运行.<br />根本原因是: 如果你没有初始化一个变量, 在DEBUG下会被初始化成0xffffffff, 在release下会被初始化成0.<br />另外,debugview是一个非常好用的调试工具.<br />方法是在代码中加入outputdebug()函数.
2010-10-21 21:19:00
616
原创 重温MFC.
第五章: 浅出MFC 程序设计.1 AFXRES.H. mfc程序的RC文件必须载入此文件. MFC对于标准资源(例如File, Edit等菜单项目)的ID都有默认值.定义于此文件中, 例如: #define ID_FILE_NEW 0XE100
2010-10-01 00:57:00
747
原创 在vc中使用组件的两种方法
当我们想要在vc中调用一个DLL文件所提供的组件的时候怎么办?假如我们想调用msxml4.dll中提供的组件来操作XML文件.那么首先要调用#import "msxml4.dll", 然后你就可以使用msxml4.dll中提供的组件了,比如说::CoInitialize(NULL);//初始化COM环境 一定要加 不要忘记!!! MSXML2::IXMLDOMDocumentPtr pDoc; MSXML2::IXMLDOMElementPtr xmlRoot; //创建DOMDocume
2010-09-11 15:58:00
1453
原创 com套间
简序 大学毕业前的最后一学期,在一家公司实习,当时的工作需要用到一些操作系统提供的组件。那时候只知道COM这个名词,并不知道到底是怎么回事,只知道上网到处找别人的源码解决自己的问题;那段日子到现在回忆起来都是灰色的,每天呆坐在电脑前,一个网站一个网站的查找自己需要的源码。但并不清楚自己到底在做什么;那时候对自己能不能成为一个程序员充满了怀疑。在实习结束返校的火车上,一夜间,我把一本《COM本质论》翻看了120多页。当我和当时的女友吹嘘自己一夜可以看100多页书的时候,她马上问我:看懂多少?当时我哑口无言。
2010-09-02 14:31:00
3098
原创 工作日记3
<br />1 uml <br /> 用例图:<br /> 在需求分析阶段,用来描述系统的功能<br /> 活动图:<br /> 相当于流程图。<br /> 时序图:<br /> 描述函数调用关系。<br />2 c++异常处理与windows异常处理:<br /> <br /> <br />3 svn如何解决冲突?<br /> 一定要用“edit conflict”手工解决完冲突。点击"conflict resolv
2010-07-23 17:27:00
418
原创 工作日记2
<br />1 vc 的.dsw和.dsp<br /> .dsp 是项目文件, .dsw是工程文件。<br /> 在.dsp中包含各种项目信息,编译选项,链接选项,及vc工作界面左侧的文件树中的显示的文件名字等。 当你要把一个旧的工程改造成一个新工程的时候,需要编辑这个文件。<br /> .dsw是工程文件,一个工程,即workspace中可以包含几个项目文件,这样便于开发。那么在.dsw中就是记录该workspace包含的各个项目名称(.dsp名称)。<br /> 当在一个workspac
2010-07-13 19:06:00
563
原创 windows内核安全编程笔记
<br />驱动程序,大多数都觉得它很神秘,很难懂,令人望而却步,其实这种感觉并不准确, 我们觉得一样东西神秘,只是因为不了解它而已. 世间万物都是reasonable的, 我们要做的只是找了它们实现的过程而已,并没有什么大不了的. 写序的人说,编写内核是件极其痛苦的事情 , 痛苦?我觉得因人而异, 不喜欢它的人会觉得相当的痛苦, 喜欢它的人会觉得是一种快乐. 虽然对于内核编程我并谈不上喜欢, 也谈不上厌烦, 毕竟这是我的专业,是我用以谋生的手段, 遇到了问题,一点点的解决, 人也跟着一步步的成长 ,痛苦只
2010-07-13 00:19:00
812
原创 工作日记
1 当在project->setting->c/c++->preprocessor->preprocessor definitions中加入_UNICODE后, 会提示以下错误:Linking...msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16Debug/prove.exe : fatal error LNK1120: 1 unresolved externalsError executing
2010-06-30 09:08:00
449
原创 vc调试
vc调试的方法: 正常的vc调试我们都会用, 但是当某些特殊情况下,我们拥有源代码,但是却无法进入调试状态的时候,我们可以使用另一种方法。比如说我目前所负责的EXE,
2010-06-25 17:46:00
549
原创 属性页
<br />如果想要做出属性页样子的程序,我们有两种方法:一、控件的介绍MFC中封装了许多有用的类,CTabCtrl和CPropertySheet是其中两个比较常用的类型。CTabCtrl即Tab控件对应的类,Windows应用程序中大量使用了Tab控件。属性页对应的是CPropertySheet,你在桌面上右键鼠标弹出的显示对话框就是一个CPropertySheet类型的对象。事实上这类弹出的、类似“属性页”的窗口大部分都是CPropertySheet。其实,这两个类之间也有着很密切的联系。使用Spy++
2010-06-22 15:45:00
1921
原创 COM的几个问题
1 DLL是否可以跨语言? 可以. VB可以调用使用vc编译的DLL中的函数. 但是具体方法我还不知道.2 ActiveX控件与ATL. COM之间的关系:3 理解COM与DLL之间的关系. 可以这样理解: DLL是一个动态链接库. COM则是一种特殊的制作DLL的方法. 比如说, DLL是一部手机, 我们可以做出很多的手机, 它们都能够用来打电话, 但是有一些问题,比如说不同种类的手机, 它们的充电器接口不一样,不能通用. 这点很不方便, 如果我们规定, 所有的手机厂商都必须按照同样的
2010-06-11 22:39:00
551
原创 DLL类型
1 MFC类库。 MFC 类库是在DLL中实现的。当我们在编写一个EXE时,在向导中会要求我们选择“MFC的使用方式”,一种是“在共享DLL中使用MFC”, 一种是“在静态库中使用MFC”,一种是“使用标准windows库”. "在共享DLL中使用MFC"是指该EXE调用MFC函数时,要到系统的MFC DLL中去找代码。“在静态库中使用MFC”是指当EXE需要MFC代码时,该代码就在EXE中。“使用标准windows库”是指不使用MFC。当我们在写一个DLL时,有两大类。一是纯win32 DLL.
2010-05-31 23:27:00
1661
原创 dll用法
1 导出一个类,定义 class AFX_EXT_CLASS WSWrapper 在调用该dll的exe中,包含一个该类的.h文件(加不加dllimport都可以,它在obj中找不到的话自然就去lib中找了)。然后直接生成该类对象就可以了。另外,要加入相应的lib 2 导出一个类。exe也可以用loadLibrary()来做。只是在DLL中要加入一个createObject(
2010-05-28 15:45:00
555
原创 编写DLL
动态链接库 问题:1 为什么有的类型的DLL中没有.h?2 非mfc的DLL是否可以导出类? 在Windows 应用程序中使用动态链接库有很多的好处。最主要的一点说是它可以使得多个应用程序共享一段代码,从而可以大幅度的降低应用程序的资源开销,同时很缩小了应用程序的最终执行代码的大小。此外,通过使用动态链接库,我们可以把一些常规的例程独立出来,有效的避免了不必要的重复开发,并
2010-05-26 22:02:00
325
原创 字符集
unicode 多字节字符集 string wstring MultiByteToWideChar 顺序:1 一个常量字符串如何放到一个cstring中, CString name;// name.Format(_T("%s"), _T("china")); name.Format(_T("%s"), "china"); “china”在内存中存放的方式与项目属性中的“字符
2010-05-20 18:43:00
534
原创 工作日志
1 获取本机MAC地址的方法 其中有一个管道的方法。还应该有底层一些的方法。例如deviceIOcontrol(); 2 获取局域网中其它机器MAC地址的方法 sendArp()函数3 winpcap发包。4 操作注册表管理桌面图标5 控制屏幕保护程序。第一:写注册表的方法,需要重启计算机 第二:调用系统对话框的方法,ShellExecute(N
2010-04-30 13:32:00
410
原创 IActiveDesktop
IActiveDesktop Interface--------------------------------------------------------------------------------Allows a client program to manage the desktop items and wallpaper on a local computer. I
2010-04-28 17:39:00
597
原创 文件系统过滤驱动
1 文件系统过滤驱动工作原理 Windows NT内核操作系统的驱动模型采用分层结构,如图1所示。图中左边是一个设备对象栈,设备对象是操作系统为帮助软件管理硬件而创建的数据结构。每个硬件至少包含一个物理设备对象(PDO)和功能设备对象(FDO),它们中间会存在一些过滤设备对象(FiDO)。驱动程序对象包含了一组处理I/O请求的例程。分层结构使I/O的请求过程更加清晰明,影响到设备的每个操
2010-04-24 22:45:00
2838
原创 CListCtrl用法
1 The CListCtrl class encapsulates the functionality of a “list view control,” which displays a collection of items each consisting of an icon (from an image list) and a label. In addition to an ico
2010-04-24 11:27:00
516
原创 数据转换问题
以前使用vc6的时候,messagebox("vc6")可以执行,但是用2005时候必须是这样messagebox(_T("2005")),为什么?这个问题与使用vc6还是2005无关,跟是否使用unicode有关。即在创建工程时,是否选择了使用unicode._T宏指定字符串中的一个字符是一个字节还是两个字节。即使你选择了unicode,系统也不会自动为你存为两个字节。你也要指定。如
2010-04-22 10:30:00
1675
原创 winpcap与socket区别
1 winpcap 和socket都有send()函数,它们的区别是: winpcap发送时填充的数据包是整个IP包,包括mac, ip, data等等全部的数据。 socket 发送时填充的数据包只是IP段以后的数据, 即用户数据,它不能指定mac。 2 可以全胜sendarp(destionip, sourceip,....)就可以获取到了已经IP机器的MAC地址了。
2010-04-21 10:42:00
4497
原创 oracle学习笔记
数据库知识一直以来是我从来没有好好的研究过的东西, 然而事实上它却是应用的最普遍的知识. 一个做了五年的程序员竟然对数据库知识几乎一无所知, 真的是不太应该. 以前对于数据库的知识始终有一些误解, 认为数据库是非常困难的,尤其是oracle. 其实这都是错觉, 经过了一天的学习, 查资料发现,其实对于一个程序员来说,oracle 并没有想像中那么可怕. 首先对使用oracle的人进行分类,
2010-04-12 22:29:00
2697
原创 net programming for microsoft windows 读书笔记
>socket modes 和socket I/O models . socket modes (每一个socket对象自己所具备的特性 ):As we mentioned, Windows sockets perform I/O operations in two socket operating modes: blockin
2010-04-03 11:16:00
856
原创 TCP/IP第一卷读书笔记
v/:* {behavior:url(#default#VML);}o/:* {behavior:url(#default#VML);}w/:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);} Normal 0 7.8 磅 0 2
2010-04-02 23:05:00
2351
Head First Design Patterns (英文高清版) _part2.rar
2010-09-08
Pages from Head First Design Patterns (英文高清版)_part1.rar
2010-09-08
Programming in C++, Rules and Recommendations.htm
2010-09-08
The C++ Programming Language (Third Edition).rar
2010-09-08
windows internals fourth edition(英文版) by solomon
2009-12-27
串口调试助手及usb转串口驱动程序
2009-12-15
com技术内幕(中文)
2009-12-13
c++设计新思维(泛型编程与设计模式之应用)
2009-12-13
networkingprogramming.chm(windows网络编程英文版)
2009-12-13
proramming windows(charles petzold) 英文版.
2009-12-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人