
windows
cupidove
这个作者很懒,什么都没留下…
展开
-
USB枚举过程图解
USB 最主要的的是要理解 USB主机发送命令给设备,设备要对主机的命令进行响应, USB通讯的基本单位为 “包” 理解好“包”这个概念是学习USB的关键所在。包有如下分类:分别是令牌包、数据包、握手包和特殊包(其实是由PID决定的)令牌包:可分为输入包、输出包、设置包和帧起始包(注意这里的输入包是用于设置输入命令的,输出包是用来设置输出命令的,而不是放据数的)其转载 2014-04-15 09:54:32 · 3285 阅读 · 1 评论 -
cmake
CMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应的Makefile或者vcproj项目。通过编写CMakeLists.txt,可以控制生成的Makefile,从而控制编译过程。CMake自动生成的Makefile不仅可以通过make命令构建项目生成目标文件,还支持安装(make install)、测试安装的程序是否能正确执行(make test,或者c转载 2014-07-04 10:51:29 · 1168 阅读 · 0 评论 -
sublime 3 编辑器
Edit基本编辑:CommandsKeysUndo/RedoCtrl + Z/Y软撤销Ctrl + UCopy/PasteCtrl + C/V选择过往复制Ctrl + K, Ctrl + V插入新上/下行并跳转Ctrl (+ Shift) + Enter删除前/后词Ctr转载 2015-02-06 10:38:14 · 853 阅读 · 0 评论 -
win32 socket connect timeout
// widonws: 默认设置socket TCP client connect为阻塞模式void TcpConnect(char* strIP, UINT nPort){ struct sockaddr_in serverAddress; SOCKET hSocket = NULL; hSocket = socket(AF_INET, SOCK_STREAM, I转载 2015-02-26 15:32:04 · 3179 阅读 · 1 评论 -
基于visual c++之windows核心编程代码分析(17)通过pipe进程间通信
管道是一种用于在进程间共享数据的机制,其实质是一段共享内存。Windows系统为这段共享的内存设计采用数据流I/0的方式来访问。由一个进程读、另一个进程写,类似于一个管道两端,因此这种进程间的通信方式称作“管道”。 管道分为匿名管道和命名管道。 匿名管道只能在父子进程间进行通信,不能在网络间通信,而且数据传输是单向的,只能一端写,另一端读。 命令管道可以在转载 2015-03-25 17:24:05 · 653 阅读 · 0 评论 -
svn命令
svn命令 通常都有帮助,可通过如下方式查询:$ svn help 知道了子命令,但是不知道子命令的用法,还可以查询:$ svn help add 开发人员常用命令(1) 导入项目$ cd ~/project$ mkdir -p svntest/{trunk,branches,tags}$ svn import svntest https:/转载 2015-04-27 17:46:29 · 588 阅读 · 0 评论 -
32位模式下C/C++程序可用最大内存
关于32位程序申请大内存问题(1.6G). 我在win7 64系统上面测试Visual studio 10int* Test=new int[1024*1024*200];int* Test2=new int[1024*1024*200];申请1.6G内存.抛出:cpptest2.exe 中的 0x770e15ee 处有未经处理的异常: Microsoft转载 2015-05-06 11:47:39 · 25472 阅读 · 1 评论 -
全面介绍Windows内存管理机制及C++内存分配实例
(一):进程空间在编程中,很多Windows或C++的内存函数不知道有什么区别,更别谈有效使用;根本的原因是,没有清楚的理解操作系统的内存管理机制,本文企图通过简单的总结描述,结合实例来阐明这个机制。本文目的:对Windows内存管理机制了解清楚,有效的利用C++内存函数管理和使用内存。本文内容:转载 2015-05-06 14:25:33 · 1563 阅读 · 0 评论 -
c++ regex && sed正则表达式删除控制台特殊控制符
在c++中,有三种正则可以选择使用,C ++regex,C regex,boost regex ,如果在windows下开发c++,默认不支持后面两种正则,如果想快速应用,显然C++ regex 比较方便使用。文章将讨论C++ regex 正则表达式的使用。C++ regex函数有3个:regex_match、 regex_search 、regex_replaceregex_ma原创 2015-05-20 15:09:48 · 2527 阅读 · 0 评论 -
WPF 入门 -- Layout:Grid, DockPanel and StackPanel
在WPF中,可以用Grid、DockPanel和StackPanel来做布局。1.GridGrid是三者之间最灵活强大的,在其父控件中,Grid自动充满其Margin以外的所有空间,并可以自动响应resize。可以看作,Grid将Margin以外的父控件的空间,按照其行定义(Grid.RowDefinitions)和列定义(Grid.ColumnDefinitions)划分成若干单转载 2015-05-28 16:05:27 · 1778 阅读 · 0 评论 -
windbg图解
Windbg工具使用 (1)符号表路径设置(参考下图)在弹出对话框中输入:D:\testdmp;srv*d:\symbolslocal*http://msdl.microsoft.com/download/symbols点击ok按钮注意:Ø D:\testdmp; 这个是我们存放符号(.pdb)的文件夹Ø srv*d:/symbolslocal*原创 2015-06-25 16:40:35 · 573 阅读 · 0 评论 -
windbg调试
WinDbg可以通过加载Symbol文件(*.pdb),即时的调试程序。WinDbg如何找到相应的符号文件呢?WinDbg首先在.exe或者.dll所在目录下寻找同名的.pdb文件。如果找不到,WinDbg在Symbol File Path中查找。Symbol File Path可以通过多种方式设置:1、通过WinDbg菜单File->Symbol File Path(Ctrl原创 2015-01-17 10:31:26 · 690 阅读 · 0 评论 -
vs2010 c++ release dump 文件生成
创建头文件DumpFile.h, 将下列代码放进文件中#pragma once#include <windows.h>#include < Dbghelp.h>#include <iostream> #include <vector> using namespace std; #pragma comment(lib, "Dbghelp.lib")namespace NSDumpFi转载 2015-06-30 14:31:11 · 4693 阅读 · 0 评论 -
Sublime Text 3
本文是Sublime Text 全程指引 by Lucida (http://www.cnblogs.com/figure9/p/sublime-text-complete-guide.html)的笔记,并添加了自己整理的一些内容,感谢原作者。1. 下载可以从官网 http://www.sublimetext.com/3 下载。2. Windows下安装与使用2.1 安装转载 2015-07-03 15:48:32 · 1002 阅读 · 0 评论 -
grpc vs2015编译
获取gRPC源码gRPC是开源框架,项目代码在github上,所以首先要安装github。github安装后,在指定文件夹中,执行git命令就可以获取gRPC的所有源码。git clone https://github.com/grpc/grpc.gitgrpc代码下载后,执行git submodule update --init初始化依赖的submodule原创 2016-11-25 16:01:06 · 7064 阅读 · 0 评论 -
windows 直接用命令提取.msi安装文件到特定路径
方法1:msiexec /a pathtoMSIfile /qb TARGETDIR=pathtotargetfolder方法2:直接用7.zip解压原创 2017-03-17 16:20:13 · 7172 阅读 · 0 评论 -
iperf-2.0.5 cygwin 编译
step 1: down load cygwin and install gcc, g++, mingwstep 2: $ cygcheck -cd | egrep "cygwin|mingw"base-cygwin 2.1-1cygwin 1.7.7-1cygwin-doc 1.7-1gcc-mingw-core原创 2017-03-22 15:40:59 · 1528 阅读 · 0 评论 -
闲来无事研究一下酷狗缓存文件kgtemp的加密方式
转:http://www.cnblogs.com/KMBlog/p/6877752.html前几天更新了被打入冷宫很久的酷狗,等进入之后就感觉菊花一紧————试 听 居 然 都 要 开 通 音 乐 包(高品和无损)才行了,WTF!这意味着以前缓存的都听不了了,本着好马不吃回头草的原则,不打算去降级了,下载PJ版的又担心被植入恶意代码,心好累╮(╯▽╰)╭作为一个程序猿,转载 2017-09-23 16:13:15 · 9613 阅读 · 4 评论 -
c++导出函数接口与实现分离
在用C++写要导出类的库时,我们经常只想暴露接口,而隐藏类的实现细节。也就是说我们提供的头文件里只提供要暴露的公共成员函数的声明,类的其他所有信息都不会在这个头文件里面显示出来。这个时候就要用到接口与实现分离的技术。 下面用一个最简单的例子来说明。 类ClxExp是我们要导出的类,其中有一个私有成员变量是ClxTest类的对象,各个文件内容如下: lxTest.h文件转载 2014-11-04 15:47:40 · 2206 阅读 · 0 评论 -
如何获取结构体某成员的偏移地址
我们假设结构体定义如下所示:[cpp] view plaincopyprint?#include #include struct test_s { int pad1; int pad2; int pad3; int pad4; i转载 2014-08-19 16:38:02 · 1149 阅读 · 0 评论 -
tcltk控制chariot进行测试,并将批量数据输出成excel
直接上源码,都加了备注,应该很容易看懂桌面新建文件夹TCL需要使用bat来驱动tcl文件转载 2014-08-19 16:28:00 · 5114 阅读 · 4 评论 -
USB的工作原理
USB的工作原理及数据包格式 一 概述 对于USB的工作我这里做个比方,主机好比一个公司,你就是USB设备,要进入公司首先要面试(枚举),你到了面试现场(第一次插入设备),面试官首先了解到你的外表,性别已经你要应聘的岗位(设备描述符),然后给你一个号,以后就开始按号叫人,当你被叫到就开始问你的专业知识,性格等(配置描述符),如果你比较合适(通过了枚举)你就会录取了,并且注册一个你的信息到公司(驱转载 2014-04-15 10:02:45 · 19650 阅读 · 3 评论 -
usb 端点解释
__u8 bEndpointAddress; //端点地址:0~3位是端点号,第7位是方向(0-OUT,1-IN)端点地址:总共8位0,1,2,3四位时端点号7位时端点方向那么由这5位可以确定32个端点地址.其中输入端点0-15输出端点0-15Outendpoint for all omron health devices,所有Omron健康转载 2014-04-15 10:27:41 · 17622 阅读 · 0 评论 -
USB 基本知识
USB 基本知识USB的重要关键字:1、端点:位于USB设备或主机上的一个数据缓冲区,用来存放和发送USB的各种数据,每一个端点都有惟一的确定地址,有不同的传输特性(如输入端点、输出端点、配置端点、批量传输端点)2、帧:时间概念,在USB中,一帧就是1MS,它是一个独立的单元,包含了一系列总线动作,USB将1帧分为好几份,每一份中是一个USB的传输动作。3、上行、下行:设备到主转载 2014-04-15 10:34:48 · 1801 阅读 · 0 评论 -
c++注册表操作
BOOL fIsBrowser(std::string& paraStrBrowser){// 判断是否是浏览器 if (std::string::npos != paraStrBrowser.find("Opera")) { paraStrBrowser = "Opera" ; return TRUE ; } else if (std::string::npos != par转载 2014-04-30 16:24:51 · 2059 阅读 · 0 评论 -
USB基础知识2
USB协议出现过的版本有USB1.0,USB1.1,USB2.0。由于USB是主从模式,设备与设备之间、主机与主机之间不能互连,为了解决这个问题,扩大USB的使用范围,就出现了USB OTG(On The Go)。USB OTG的做法是,同一个设备,在不同的场合下可以在主机或从机之间切换。在USB1.0和USB1.1版本中,只支持1.5Mbps的低速(Low Speed)模式和12Mbps的全转载 2014-04-16 11:46:55 · 1188 阅读 · 0 评论 -
usb传输小节
首先,要明白两个观点。第一,USB总线上所有的事务(数据流传输)都是由USB Host主动发起,而USB设备永远永远都是只是被动地接收然后处理USB Host发来的各种各样的命令(要求)。第二,中断是USB Host和USB设备之间的信令员,USB Host所有的要求都是通过这个信令员即中断来通知USB设备。 我们可以将整个USB数据通信过程看成是由一个一个的数据包构成,而这些数据包转载 2014-04-16 11:52:30 · 910 阅读 · 0 评论 -
windows 注册表操作注意点
最近使用到RegQueryValueEx这个函数,发现了两个小问题,总是解决不了,上网上找资料发现不是找不到就是找的不对,现在终于解决了,所以分享给大家来看看,给那些还在困惑中徘徊的和我一样的菜鸟看看,大牛就就直接飘过吧。RegQueryValueEx这个函数MSDN是这样解释的This function retrieves the type and data for a specif转载 2014-05-06 12:17:07 · 706 阅读 · 0 评论 -
从CreateFile(APP)到NtCreateFile(Kernel Mode)
1. Nt*与Zw*的区别"一组与执行体的系统服务(executive's system services)平行的入口点.从内核模式的代码()中调用一个Zwxxx入口点将获得相应的系统服务,只是在使用Zw*()函数时,不会检查调用者的访问权限和参数的有效性,而且调用不会将先前模式(previous mode)切换到用户模式""尽管任意一组函数都可以从内核模式调用,但如果用Zw*()转载 2014-04-23 15:03:43 · 4201 阅读 · 0 评论 -
win32 查找注册表找网卡
#define SIZEOF_DEVICE_NAME 256CString strDeviceList = "";BOOL get_device_info(int Index, char *key_name, char *device_info, char *device_description){ HKEY hkey ; DWORD size转载 2014-04-23 10:36:34 · 1547 阅读 · 0 评论 -
Windows7+WDK+VS2010+VisualDDK驱动开发环境搭建(菜鸟的经验)
自己在研究驱动开发,第一步就是开发环境的搭建,网上已有很多的教程一,我也是按着教程一步一步搭建的,但在搭建过程的过程当中遇到一些问题,也花了我不少时间。第一个难题就是,我是Windows7+VS2010+WDK的开发环境。首先我参考了网上的一篇文章:http://www.cppblog.com/guojingjia2006/archive/2011/03/19/142211.htm转载 2014-04-12 12:10:46 · 1692 阅读 · 0 评论 -
搭建Nginx+Java环境
一、简介:Tomcat在高并发环境下处理动态请求时性能很低,而在处理静态页面更加脆弱。虽然Tomcat的最新版本支持epoll,但是通过Nginx来处理静态页面要比通过Tomcat处理在性能方面好很多。二、下载安装:下载nginxhttp://nginx.org/en/download.html下载解压后放到C:\nginx-1.0.4(官网这样要求原创 2014-06-09 18:03:16 · 31207 阅读 · 2 评论 -
libcurl http download upload
//重写把数据读入上传数据流函数 size_t read_file(void* buff, size_t size, size_t nmemb, void* userp) { size_t sizes = fread(buff, size, nmemb, (FILE *)userp); return sizes; } int HTTP_file::upload_file(cons转载 2014-05-26 22:22:23 · 2786 阅读 · 1 评论 -
windows Ansi,UTF8,Unicode编码
1. ASCII和Ansi编码字符内码(charcter code)指的是用来代表字符的内码.读者在输入和存储文档时都要使用内码,内码分为 a.单字节内码 -- Single-Byte character sets (SBCS),可以支持256个字符编码. b.双字节内码 -- Double-Byte character sets (DBCS),可以支持65000个字符编码.转载 2014-05-26 21:53:41 · 1147 阅读 · 0 评论 -
图解eclipse+tomcat配置jsp开发调试环境
这篇文章主要介绍如何利用Sysdeo Eclipse Tomcat Launcher plugin 编辑和调试JSP与Servlet一. 需要的软件 Sysdeo Eclipse Tomcat Launcher plugin 主页 http://www.sysdeo.com/eclipse/tomcatPlugin.html 下载转载 2014-06-10 14:15:22 · 1257 阅读 · 0 评论 -
libcurl
//采用CURLOPT_RESUME_FROM_LARGE 实现文件断点续传功能#include #include #include #include //这个函数为CURLOPT_HEADERFUNCTION参数构造/* 从http头部获取文件size*/size_t getcontentlengthfunc(void *ptr, size_t size, size_t nme转载 2014-05-24 16:07:00 · 5763 阅读 · 1 评论 -
win32进程共享内存
在Windows程序中,各个进程之间常常需要交换数据,进行数据通讯。WIN32 API提供了许多函数使我们能够方便高效的进行进程间的通讯,通过这些函数我们可以控制不同进程间的数据交换. 进程间通讯(即:同机通讯)和数据交换有多种方式:消息、共享内存、匿名(命名)管道、邮槽、Windows套接字等多种技术。“共享内存”(shared memory)可以定义为对一个以上的进程是可见的内存或存转载 2014-07-03 16:00:34 · 2210 阅读 · 0 评论 -
winsock error 10053 10054 分析
转自:http://www.blogjava.net/pandawang/archive/2013/11/28/406922.htmlWSAGetLastError可能会返回10053错误,查msdn的解释是:WSAECONNABORTED 10053Software caused connection abort.An esta转载 2018-01-07 15:49:27 · 2872 阅读 · 0 评论