自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(97)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 wtl的CTreeViewCtrl使用

class CDemoView : public CWindowImpl<CDemoView, CTreeViewCtrl>{public: //DECLARE_WND_CLASS(NULL) DECLARE_WND_SUPERCLASS(NULL, CTreeViewCtrl::GetWndClassName()) BOOL PreTranslateMessage(MSG

2015-12-21 15:57:35 1896

原创 读写ini配置文件

//读写ini文件。#include <Windows.h>int main(int argc, char *argv[]){ TCHAR szData[MAX_PATH] = { 0 }; TCHAR FileName[MAX_PATH] = { 0 }; int ret = 0; int n = 0; GetCurrentDirectory(MAX

2015-12-18 14:58:12 522

原创 c判断windows的系统是32位还是64位

#include <windows.h>#include <stdio.h>#pragma comment(lib, "user32.lib")int main(int argc, char *argv[]){ SYSTEM_INFO si; // Copy the hardware information to the SYSTEM_INFO structure. Ge

2015-12-18 13:56:58 2030

原创 windows删除一个目录下的文件c代码

/************************************************************************ deleteFile.h* 删除一个目录下的文件****************/#ifdef __cplusplus extern "C" { #endif#ifdef UNICODE#define DelFile DelFileW

2015-12-08 13:32:49 1342

原创 怎么解决开发中遇到的问题

怎么解决开发中遇到的问题?

2015-11-27 09:21:18 383

原创 ObReferenceObjectByHandle例程

ObReferenceObjectByHandle例程

2015-11-18 15:21:24 3000

原创 x86平台原子操作原理

什么是原子操作?任务切换采用中断机制触发,发生一次任务切换,就向处理器通知一次中断发生。任务切换发生在指令边缘,一条指令在执行时,不会进行任务切换,在两条指令的间隙才可能会发生任务切换。原子操作是不可中断的一系列操作。为什么要原子操作?原子操作有什么意义?对于软件,代码的行为必须确定的。 也就是说通过手动分析代码,也能预知运行结果。但是程序在并发和并行的时候, 因为操作系统任务调度的不确定性和多

2015-11-18 14:04:28 1523

原创 Win32Project编译报错error C1853:

引子vs2013新建win32工程Win32Project1,修改文件Win32Project1.cpp名为Win32Project1.c,编译,报如下错误:错误1 error C1853: “Debug\Win32Project1.pch”预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)D:\visual studio

2015-11-18 11:49:30 907

原创 InterlockedCompareExchange例程

InterlockedCompareExchange 例程执行一个原子操作,用参数Comparand的值与参数Destination指针指向的值比较。Syntax:LONG InterlockedCompareExchange( _Inout_ LONG volatile * Destination, _In_ LONG Exchange, _In_ LONG Comparand );Par

2015-11-18 11:18:09 4642

原创 谈编程是个什么玩意儿

人们总是很好奇,编程是个什么玩意儿?我之前也没思考过这个问题。也不清楚什么是编程。只是看美国大片里, 黑客程序员们对着键盘不停噼里啪啦的敲着,眼睛看着电子显示器,黑色电子显示器上不停地显示着一行字母单词的打印,不停的刷屏,虽然像无字天书,但看着好高端,好酷炫的样子。在最初的印象,程序员就是坐在电脑面前, 不停在键盘上敲打。也不清楚,他为啥在电脑跟前,为啥敲打电脑。虽然现在也跟计算机打交道,也敲打

2015-11-18 09:47:15 924 1

原创 怎么看图

在日常工作中,总能接触到图表图形的。比如柱形图、折线图、饼图、条形图、面积图、X Y 散点图、股价图、曲面图、圆环图、气泡图、雷达图等等。比如协议帧图等等专业性图。遇到这些图,该怎么看? 怎么看图上的符号,图要表达的意思呢?先大概看一下图的全貌,看看完整的布局和框。然后在从上到下、从左到右的浏览一下各部分。最后读一读,抠一抠图的字眼和概念, 用自己已有的知识和经验跟图形对号入座, 想象自己有没

2015-11-17 16:48:12 540

原创 线程

【等待线程】 KeWaitForSingleObject例程把线程放到等待状态直到调度对象被设置成型号状态,或者可选的直到等待超时。Syntax:NTSTATUS KeWaitForSingleObject( _In_ PVOID Object, _In_ KWAIT_REASON WaitReason, _In_ KPROCESSOR

2015-11-17 14:26:50 124

原创 工作细节

在工作中,难免要提供一些东西给另一方。因此我们在提供东西的时候,就要充分站在另一方考虑。比如我们可以用高板版本的word软件,比如office 2010, 保存的文件格式是hello.docx, 但是对方使用的是office 2003,他那边就不识别hello.docx。 所以尽量使用兼容以前的版本,提供hello.doc给另一方。提供代码也要考虑兼容性。如果你用的vs2013建立项目,用户使

2015-11-17 10:23:42 376

原创 viso画数据流图

打开viso, 选择基本形状, 选择基本形状, 选择矩形, 输入字符Obj_a, 选择矩形, 输入字符中间, 选择矩形, 输入字符Obj_b, 选择矩形, 输入字符Obj_c,选择折线,链接关联的矩形。 选择折线,画过数据流经的框图,设置线条格式, 重点选择05箭头, 虚线类型选择10虚线。 下图是一个简单的示例:

2015-11-16 18:19:25 10018

原创 vs代码同步的问题

vs2013的代码同步到vs2010,会编译失败。 需要修改工程属性页——>配置属性——>常规——>平台工具集, 把v120改成v100就可以了。两个人同时进行一个项目开发, 甲用vs2013, 乙用vs2010,现在甲在项目工程里添加了a.h和a.c两个文件。乙用beyondcompare对比甲的项目目录, 只对比同步.h和.c文件,但是,乙同步了之后,编译不过, 报错链接时找不到xx

2015-11-16 16:21:19 2224

原创 DeviceIoControl function

函数DeviceIoControl给指定设备驱动直接发送一个控制码, 让相应的设备进行相应的操作。BOOL WINAPI DeviceIoControl( _In_ HANDLE hDevice, _In_ DWORD dwIoControlCode, _In_opt_ LPVOID lpInBuffer, _

2015-11-16 15:11:32 429

原创 WdfRequestRetrieveOutputBuffer

WdfRequestRetrieveOutputBuffer方法可以取得一个I/O请求的输出缓冲区。NTSTATUS WdfRequestRetrieveOutputBuffer( [in] WDFREQUEST Request, [in] size_t MinimumRequiredSize, [out] PVOI

2015-11-16 14:45:40 1812

原创 wtl学习开篇

安装好vs和wtl开发环境后,就可以进行wtl开发了。wtl提供了windows图形界面开发框架,可以利用wtl开发出想要的windows图形视窗界面程序。首先我们简单的建立一个wtl的程序,看看wtl的代码逻辑和图形界面是如何来搭建代码积木的。打开vs工具, 1、新建项目——>在已安装——>Visual C++ ——>WTL ——> ATL/WT Application Wizard名称写wt

2015-11-16 12:05:58 626

原创 工作细节

1、代码的干净、整洁2、版本的管理3、构建环境条件4、大胆假设,小心求证。

2015-11-16 10:42:24 317

原创 怎么写原理文档

写文档。 写什么文档? 怎么写文档? 什么是文档? 它包含什么内容?文档是记录、描述一件事、一个东西、一个概念的文字集合, 是一种书面描述。它可以记录一个人的想法、见闻、感受等等。它将一切浓缩于文字,浓缩在书面里。我们可以阅读别人的文档,可以自己写文档。简单来说,用简单易于明白的文字话语将一件事情讲明白说清楚,思路清晰有条理。能够将作者的思想准确的呈现在文字里, 让阅读的人读过之后,就像

2015-11-13 17:42:35 869

原创 编程思维的点滴

编程思路要清晰,要对自己所要做的事情有个百分之一百二十的了解。 不能模棱两可差不多就行。 往后的日子还很长,只图一时的爽快,将得不偿失,不值得, 甜在前头,苦在哭在后头,是令人很烦恼的一件事情。 无论时间多么仓促,自己都要想办法弄清楚自己所面对的是什么东西, 我要把它做成什么样子,做到什么程度。做任何事情,试错没有问题,但不能不经过大脑而满目的如无头苍蝇一般胡乱瞎捉摸,那样只是做无用功,甚

2015-11-12 20:03:32 595

原创 培养思考的意识

思考,是一个有些抽象的东东。 我的理解思考就是凭借保存在脑袋里的资源进行重新组织、联系,发挥想象的翅膀,得到意想不到的收获。 思考是一种技能,是一种意识。 人人都可以思考。 思考是一种能力,就像体育竞技一样,水平有高低,每个人的思考能力和意识都可以锻炼和提高的。 经过锻炼和意识的培养,进步可以令人很满意的。 万丈高楼平地拔,基础很重要。 必要的智商、知识见闻积累、想象能力、重组能力、记

2015-11-12 12:03:06 588

原创 vc编程判断运行时os是32位还是64位

windows操作系统有32位和64位两种。 一个程序如何在运行时判断所运行的系统是32位的还是64位的? 64位操作系统上可以运行32位和64位程序。 vs2013采用Visual Studio 2013 - Windows XP (v120_xp)平台工具集编译的exe程序,既可以运行在32位操作系统上,也可以在64位操作系统上运行。通过sizeof(int *)的值是4或8不能判断所运行

2015-11-12 11:31:02 1242

原创 学习wtl.1

ATL-style 模板。#include <iostream>using namespace std;template <class T>class B1{public: void SayHi() { T *pT = static_cast<T*>(this); pT->PrintClassName(); }protected:

2015-11-11 16:50:18 385

原创 测试与开发

测试与开发是成功制作一个软件作品的两条腿。开发是实现软件功能, 测试是验证软件功能。一个软件做好了,能不能正常正确运行。 需要测试它的各方面特性是不是ok,才行。一个软件的组织是一行行的代码, 它们根据不同数据结构和算法组织在一起。调试实际上就是一种测试。 调试结合测试场景、代码和程序运行状况三方来协作。通过彼此之间的关系,修改代码,以达到软件特性满足必须的软件使用需求。测试场景可以从数量上

2015-11-11 13:25:46 954

原创 windbg双机调试命令使用

F5或在命令输入g,运行。 F9在代码光标所在行下断点。 bl列出所有断点 bc *删除所有断点 bc 0 删除0号断点0n(十进制) 0x(十六进制) 0t(8进制) 0y(2进制) 可以使用n [8|10|16]命令来修改数值进制表示方式(输入n可查看当前进制,默认为16进制)dt - dump symbolic type information. dt [[-ny] [!

2015-11-11 10:20:31 703

原创 杂谈学习的一点经验

在面对一个新的东西时, 首先要甄别学习的目的和价值。 我们要能判断是不是值得学习, 或者说我学了会不会它之后,会不会用到。 如果是要学,需要怎么学?学到什么程度。 有的只是需要了解,知道就行,不需要花费太多时间。 有的需要掌握原理,需要专心投入时间和精力研究。 在确定要学习后,就要想方设法让自己知其然,也要知其所以然。学习,有的东西时要脑袋记住它,有的是用一下就丢掉的。 要记在脑袋里

2015-11-11 09:58:08 483

原创 debug断点没有命中的问题

引子,在调试的时候,遇到一个情况,在原先断点的地方查看的信息不对, 因此修改了一下,结果程序跑着,没有命中断点。 下面用一个例子来分析一下原因。int fun_a(){ int ret = 0; //do something if(var) { ret = 1; return ret; } //do somethin

2015-11-10 17:51:39 1167

原创 wtl学习

1、介绍WTL 是 Windows Template Library 的缩写,由微软的ATL(Active Template Library) 小组开发,主要是基于 ATL 对Win32API 的封装。从 2.0 后,功能逐步完善,成为了一个完整的支持窗口的框架(windows framework)。WTL 功能不如MFC完善,但是比 MFC 更小巧,不依赖 MFC 的DL

2015-11-10 13:24:04 1078

转载 windbg命令熟悉

windbg命令分标准命令、元命令和扩展命令。标准命令提供基本功能,不区分大小写。比如dt、lm、g、bl、bc、p等。提供标准命令没有提供的功能,也内建在调试引擎中,以.开头。如.sympath  .reload等。 扩展命令用于扩展某一方面的调试功能,实现在动态加载的扩展模块中,以!开头。如!analyze等。 使用;作为分隔符,可以在同一行输入多条命令。一次可以执行多

2015-11-09 15:10:59 711

原创 学与用的关系

在学校学习中,老师讲,学生听,老师布置作业,学生完成。学生听老师讲30%,学生自己理解50%,学生自己运用知识20%。学与用的关系,主要是老师带着学生往前走路,学生模仿者前行,直到自己理解能使用了,就算学好了,如果还是不懂所以然,连使用都不行,那就是没有学好。        这种学习知识技能的事情,一方面试别人教,一方面是自己教自己,也就是所谓的自学。在学校有人教,可以走捷径。

2015-11-09 14:04:05 1679

原创 怎么调试驱动代码

2015-11-6 15:17:05 周五当拿到一个程序,要调试它。那么怎么调试它呢?首先要将代码编译成debug版本,其次搭建debug环境。接下去就可以进行调试了。这些只是调试工作的准备工作,真正调试的工作还没有开始。真正调试的是针对代码要达到的功能与代码实际跑的现象做对比。如果代码现象跟目标要求不一样,就要在调试器里查看代码的特征,在不一样的地方查

2015-11-06 15:30:19 736

原创 windbg符号加载和调试

驱动文件*.sys一般在目录:C:\Windows\System32\driverspc机上每个东西都有驱动,键盘、鼠标、显示器、cpu等等。没有驱动,这些东西都不能运作,就是一堆废品。谈一谈windows驱动调试。使用windbg调试。一般安装ddk后,就安装了windbg,在目录C:\Program Files (x86)\Windows Kits\8.1\

2015-11-06 14:50:07 6546

原创 windows的inf

windows的inf是什么?它有什么么用?INF是安装windows驱动的时候需要用到的文件。它就像一个安装脚本,告诉windows怎么安装驱动,源文件在哪里、安装到哪一个文件夹中、怎样在注册表中加入自身相关信息等等。INF文件其实是一种纯文本文件,可以编辑查看。INF文件有一整套的编写规则,每一个INF文件都是严格按照这些规则来编写的。规则规

2015-11-06 09:08:26 623

原创 windows编程学习点滴1

虽说是跟计算机打交道,写过代码,但对程序的认识还是没有达到能够像大神那样可以随心所欲的境界,还是有很多未曾接触的概念和理论。it这行,有人辛苦烦恼,有人轻松愉快。就单单做同一件事情来讲,各人之间的水平差距和努力程度决定者是否轻松愉快,还是辛苦烦恼。就单单讲搞技术这行,没有时间花在阅读和研究上,是不会有收获和好结果的。很简单的一个道理,我,们要使用一个东西,我们就要懂一个东西,才能正

2015-11-05 09:06:12 587

原创 学习DMA原理

2015-11-3 11:20:28 周二目的: 掌握DMA原理,在工作中能灵活应用。概念:DMA原理:DMA(Direct Memory Access,直接内存存取) ,它可以让不同速度的硬件沟通,不需要依赖CPU的大量中断负载。不然,CPU 需要从 来源 把每一片段的资料复制到 暂存器,然后把他们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用

2015-11-03 16:20:39 2964

原创 将32位代码向64位平台移植

2015-11-2 16:09:53 周一 将32位代码向64位平台移植,怎么弄? 是不是只要将32位的代码重新编译成64位的二进制可执行文件就行了吗?32位跟64位程序有什么不一样的?32位环境涉及”ILP32”数据模型,是因为C数据类型为32位的int、long、指针。而64位环境使用不同的数据模型,此时的long和指针已为64位,故称作”LP64”数据模型。现今所有64位的类Unix平台均

2015-11-02 19:36:35 824

原创 Windows下exe和dll文件怎么判定自己该链接何种版本的c运行时库的研究

Windows下的exe和dll文件是COFF/PE文件格式的文件。 通过了解Windows的COFF/PE文件结构, 可以知道: COFF/PE文件结构里有一个可选文件头。 在IMAGE_OPTIONAL_HEADER32可选头文件结构里BYTE类型字段MajorLinkerVersion创建可执行文件的链接器的主版本号。 对于Microsoft的链接器生成的PE文件,这个版本号与Vis

2015-11-02 12:00:59 1541

原创 windows的exe、lib文件跟c运行时库怎么关联的

2015-11-2 09:22:02 Am Monday 嗨,周一。一个新的工作周的开始。在Windows操作系统下,可执行文件的存储格式是PE(Portable Executable)格式的;在Linux下,可执行文件的存储格式是WLF格式的。它们都是COFF格式文件的变种。在Windows下,目标文件(.obj)、静态库(.lib)使用COFF格式存储;可执行文件(.exe),动态链接库文件(

2015-11-02 11:34:28 1682

原创 Windows环境下exe、lib、dll文件怎么确定自己选择哪个版本c运行时库的

Windows环境下,c运行时库mscrt.dll,会有多个版本。 Run-Time Library是编译器提供的标准库,提供一些基本的库函数和系统调用。我们一般使用的Run-Time Library是C Run-Time Libraries,当然也有Standard C++ libraries。C Run-Time Libraries实现ANSI C的标准库。VC安装目录的CRT目录有C Run

2015-11-02 09:03:29 2192

C_C+++函数库.chm

c、c++编程语言的语法、运算符、基本库函数。便于查阅。

2013-12-19

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

TA关注的人

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