使用Lua脚本为wireshark编写自定义通信协议解析器插件……继续阅读 » 弦苦 3年前 (2022-03-19) 3225浏览 0评论2660个赞
一.基础概念二.时序与频率三.信号数字化四.数据编码五.数据传输六.信道复用七.数据交换……继续阅读 » 弦苦 3年前 (2022-03-19) 2090浏览 0评论578个赞
CodeProject – 《A Simple IOCP Server/Client Class》 – 整改……继续阅读 » 弦苦 3年前 (2022-03-19) 1162浏览 0评论152个赞
重温 阻塞I/O与非阻塞I/O、I/O复用、同步I/O与异步I/O 等基本概念。……继续阅读 » 弦苦 3年前 (2022-03-19) 2098浏览 0评论2201个赞
#define FALSE 0 afx.h#define TRUE 1 afx.h#define NULL 0 afx.htypedef void VOID winnt.h // 短整型typedef unsigned shorttyped……继续阅读 » 弦苦 3年前 (2022-03-19) 2346浏览 0评论501个赞
1.新建一个WorkSpace—DllSample。 2.Add New Project to Workspace,新建工程MyDll,工程类型选择“Win32 Dynamic-Link Library”,选择“A DLL that exports some symbols”,即要求VC++自动生成一些导出符号代码。 (1) 在头文件MyDll.h中添加……继续阅读 » 弦苦 3年前 (2022-03-19) 3136浏览 0评论2176个赞
What is a Web Service?Web Services Standards(XML -based)-SOAP(Simple Object Access Protocol)-WSDL(Web Service Description Language)-UDDI(Universal Description,Discovery,Integration……继续阅读 » 弦苦 3年前 (2022-03-19) 2308浏览 0评论1948个赞
一.判断一个目录是否存在#include #include // szPath末尾无斜杠bool isFolderExist(TCHAR *szFolderPath){ bool exist = true; // false; _tfinddata_t fd; // WIN32_FIND_DATA long hFind = _tfindfirst(szFol……继续阅读 » 弦苦 3年前 (2022-03-19) 1986浏览 0评论1112个赞
INI文件简介在我们写程序时,总有一些配置信息需要保存下来,以便在下一次启动程序完成初始化,这实际上是一种类持久化。将一些信息写入INI文件(initialization file)中,可完成简单的持久化支持。Windows提供了API接口用于操作INI文件,其支持的INI文件格式一般如下:===============================[Se……继续阅读 » 弦苦 3年前 (2022-03-19) 1715浏览 0评论2970个赞
MFC向导生成的对话框为模态对话框,当我们在资源编辑器中向对话框拖拽一个按钮IDC_BTN时,其布局信息将同步反映在DlgDemo.rc资源脚本文件中。// DlgDemo.rcIDD_MY_DIALOG DIALOGEX 0, 0, 320, 201STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTI……继续阅读 » 弦苦 3年前 (2022-03-19) 1647浏览 0评论1947个赞
基于MFC源码,对MFC消息映射包括子控件的命令通知消息的处理流程做一个梳理。……继续阅读 » 弦苦 3年前 (2022-03-19) 1932浏览 0评论2005个赞
CPlex,CFixedAlloc,Memory Pool……继续阅读 » 弦苦 3年前 (2022-03-19) 3143浏览 0评论2507个赞
#include BOOL InitWindowsClass(HINSTANCE hInstance); // 注册窗口类BOOL InitWindows(HINSTANCE hInstance, int nCmdShow); // 创建窗口LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LP……继续阅读 » 弦苦 3年前 (2022-03-19) 3156浏览 0评论2125个赞
一.MsXml创建XML文档示例 // XmlCreationDemo.cpp#include #include // 引入MSXML解析器#import using namespace MSXML2;class InitializeCom{public: InitializeCom() { CoInitialize(NULL); // Ini……继续阅读 » 弦苦 3年前 (2022-03-19) 2791浏览 0评论2045个赞
This part of the XML Document Object Model (DOM) reference describes the programming object syntax. The first table lists the core objects/interfaces. The second table lists the im……继续阅读 » 弦苦 3年前 (2022-03-19) 1455浏览 0评论120个赞
I/O管理器 I/O 管理器定义了有序的结构,或者说是模型,在这个模型里将I/O请求发送给设备驱动程序。I/O系统是包驱动的,大部分I/O请求用I/O请求包(IRP)代表,从一个I/O系统组件传送到另一个组件。(注意:快速I/O不是IRP。)这种设计允许一个应用程序线程可以同时管理多个I/O请求。一个IRP是一个数据结构,包含了完整地描述一个I/O请求的信息……继续阅读 » 弦苦 3年前 (2022-03-19) 2834浏览 0评论912个赞
一.几个What什么是API?API是英文 Application Programming Interface 的简称,意为“应用程序接口”,泛指系统为应用程序提供的一系列接口函数。Windows API是Windows操作系统与应用程序之间的标准接口,它提供了上千个API标准函数、宏和数据结构。在使用VB,VC,Dephi编写应用程序时都可以调用Windo……继续阅读 » 弦苦 3年前 (2022-03-19) 1547浏览 0评论2522个赞
1.使用MFC AppWizard生成一个单文档应用程序框架。(1)启动Visual Studio 6.0(2) 文件->新建->项目->MFC AppWizard(exe)->输入项目名称MySDI(3) Step1,选择Single Document。(4) Step2~6,选择默认。(5) F7,Build MySDI.exe即可运行。 2.M……继续阅读 » 弦苦 3年前 (2022-03-19) 1872浏览 0评论2805个赞
一.关于GDI的基本概念什么是GDI?Windows绘图的实质就是利用Windows提供的图形设备接口GDI(Graphics Device Interface)将图形绘制在显示器上。在Windows操作系统中,动态链接库C:/WINDOWS/system32/gdi32.dll(GDI Client DLL)中定义了GDI函数,实现与设备无关的包括屏幕上输……继续阅读 » 弦苦 3年前 (2022-03-19) 1359浏览 0评论244个赞
开发平台:WinXP SP3+IIS5.1+IE7+Visual Studio 2005+Visual Studio 6.0+ MS SOAP Toolkit 3.0 一.创建ASP.NET WebServiceVisual Studio 2005à文件à新建à网站àASP.NET Web服务项目WebServiceDemo。以下为Service.cs代码清……继续阅读 » 弦苦 3年前 (2022-03-19) 2036浏览 0评论1996个赞
下面我们来看看Windows平台下应用程序是怎么调用Windows提供的底层API服务运行的。 我们编写Win32SDK程序时,需要弹出对话框以作出友好的选择,MessageBox这个API函数就可以实现该功能。在开头要添加,因为其包含了众多的API函数声明头文件。为了探究这个小小的MessageBox是怎么弹出来的,我们右击MessageBox,选择“Go……继续阅读 » 弦苦 3年前 (2022-03-19) 2447浏览 0评论1579个赞
1.典型C/C++程序/*HelloC.c*/#includeint main(int argc, char *argv[]){ printf(“Hello C!/n”); return 0;}// HelloCPP1.cpp#includeint main(int argc, char *argv[]){ std::cout……继续阅读 » 弦苦 3年前 (2022-03-19) 1715浏览 0评论232个赞
除了传统的SDK方式编写Windows应用程序外,还可以使用微软的基础类库MFC。它采用C++程序设计语言对SDK函数进行包装,使Windows下的C语言程序设计,成为面向对象的MFC。以下为MFC窗口应用程序框架示例及解析。 1.建立Win32项目FirstMFC打开Visual Studio 2005à文件à新建à项目àVisual C++àwin32……继续阅读 » 弦苦 3年前 (2022-03-19) 1561浏览 0评论2025个赞
(1)建立单文档MFC项目Draw:NewàProjectsàMFC AppWizard(EXE)àSingle Document。(2)找到CMainFrame::PreCreateWindow函数,在其中设置默认窗口大小为400 pixel*300 pixel。BOOL CMainFrame::PreCreateWindow(CREATESTRUCT……继续阅读 » 弦苦 3年前 (2022-03-19) 2393浏览 0评论2316个赞
为什么要使用UNICODE?(1) 可以很容易地在不同语言之间进行数据交换。(2) 使你能够分配支持所有语言的单个二进制.exe文件或DLL文件。 (3) 提高应用程序的运行效率。……继续阅读 » 弦苦 3年前 (2022-03-19) 1737浏览 0评论1902个赞
字符/0和0的区别字符’0’对应的ASCII码为十六进制30;而’/0’即为ASCII码中的0,其对应字符空字符NUL。 char c = /0;çèchar c = 0 // NUL char c = 0;çèchar c = 48;最典型如memset函数:void *memset( void *buffer, int ch, size_……继续阅读 » 弦苦 3年前 (2022-03-19) 1737浏览 0评论1239个赞
编程学习和技术相关的网站集锦。……继续阅读 » 弦苦 3年前 (2022-03-19) 1336浏览 0评论2172个赞
C/C++ 工具链:vc/gcc/clang……继续阅读 » 弦苦 3年前 (2022-03-19) 1437浏览 0评论1276个赞
当今的计算机系统使用的基本上都是由18世纪德国数理哲学大师莱布尼兹发现的二进制系统。二进制数字系统中只有两种二进制数码——0和1。“bit”(比特)被创造出来代表“binary digit”,1bit代表一个二进制数位。在有限范围内的可计量数值几乎都可以用二进制数码串组合表示,计算机的内存由数以亿万计的比特位存储单元(晶体管)组成。由于一个位只能表示二元数值……继续阅读 » 弦苦 3年前 (2022-03-19) 1678浏览 0评论2883个赞
在C语言中,每一个变量都有两个属性:数据类型(Variable Types)和存储类型(Storage Classes)。存储类型则指变量在内存中的存储方式,它决定了变量的作用域(Scope)和生存期(Lifetime)。……继续阅读 » 弦苦 3年前 (2022-03-19) 2296浏览 0评论163个赞
SGI — Silicon Graphics[Computer System] Inc.硅图[计算机系统]公司.STL — Standard Template Library,标准模板库。……继续阅读 » 弦苦 3年前 (2022-03-19) 2778浏览 0评论358个赞
some classic books about programming……继续阅读 » 弦苦 3年前 (2022-03-19) 1202浏览 0评论1415个赞
堆和栈的区别……继续阅读 » 弦苦 3年前 (2022-03-19) 2135浏览 0评论823个赞
C++ 编年史简介及参考……继续阅读 » 弦苦 3年前 (2022-03-19) 1206浏览 0评论1789个赞
define、const&inline……继续阅读 » 弦苦 3年前 (2022-03-19) 1874浏览 0评论2433个赞
1.函数指针(1)函数指针的声明函数指针形式说明如下:返回类型>(*指针变量名)(形参列表);其调用格式如下所示:int max(int x,int y); // 定义函数maxint (*funcp)() = max;//定义返回值为整型的函数指针funcp = max;//函数名同数组名一样隐式转换为函数入口地址),funcp指向函数……继续阅读 » 弦苦 3年前 (2022-03-19) 3142浏览 0评论1797个赞
一个不带下标的数组名就是一个指向此数组的指针,具体来说就是第一个数组元素的地址。当一个指针变量被初始化为数组名时,就说该指针变量指向了数组(首元素)。 char str[20],*pstr; pstr=str等价于pstr=&str[0]; //指针被置为数组第一个元素的地址访问数组第6个元素:str[5],pstr[5], *(str……继续阅读 » 弦苦 3年前 (2022-03-19) 1693浏览 0评论2740个赞
1.指针,变量的指针,指针变量由于通过地址能找到所需的变量单元,因此可以说地址“指向该变量单元”。在C语言中,将地址形象化的称为“指针”,一个变量的地址称为该“变量的指针”,意思是通过它能找到以它为地址的内存单元。指针的值是指针本身存储的数值,这个值将被编译器当作一个地址,而不是一个一般的数值。在32位程序里,所有类型的指针的值都是一个32位整数。因为32位……继续阅读 » 弦苦 3年前 (2022-03-19) 1171浏览 0评论2469个赞
赋值操作符赋值操作符即“=”。赋值操作符为二元操作数,其操作目的是将右操作数的值复制给左操作数。由于左值涉及到写操作,因此左值必须为非const量,而右值在赋值操作中只涉及读操作,因此一般为const量。赋值操作符通常返回左操作数的引用,这样就不需要创建和撤销运算结果的临时副本。C/C++编译器支持对内置类型(例如整形int和浮点型double)的赋值运算。……继续阅读 » 弦苦 3年前 (2022-03-19) 1746浏览 0评论259个赞
//派生类成员函数对基类成员函数的覆盖#include “stdafx.h”#includeclass A{public: void Show() { std::cout”A::Show/n”; }}; class B:public A{public: void ……继续阅读 » 弦苦 3年前 (2022-03-19) 2287浏览 0评论1608个赞
(1)派生方式class 派生类名>:[派生方式]基类名>{ //派生类新增成员的声明}在上述派生类的定义中,“派生方式”决定了基类成员在派生类中的访问权限。派生的方式共有public、private、protected(默认派生方式为private)。 虽然派生类继承了基类的所有成员,但是为了不破坏基类的封装性,无论采用哪种继承方式,……继续阅读 » 弦苦 3年前 (2022-03-19) 1853浏览 0评论2808个赞
(1)构造函数、析构函数与赋值函数构造函数、析构函数与赋值函数是每个类最基本的函数。它们太普通以致让人容易麻痹大意,其实这些貌似简单的函数就象没有顶盖的下水道那样危险。每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)。对于任意一个类A,如果不想编写上述函数,C++编译器将自动为A 产生四个缺省的函数,……继续阅读 » 弦苦 3年前 (2022-03-19) 2661浏览 0评论2658个赞
1.指针的初始化指针变量的零值是“空”(记为NULL)。在中#define NULL 0,尽管NULL 的值与0 相同,但是两者意义不同。假设指针变量的名字为p,它与零值比较的标准if 语句如下:if (p == NULL) // p 与NULL 显式比较,强调p 是指针变量。当我们试图析取(dereference)一个空指针NULL时,例如int *p =……继续阅读 » 弦苦 3年前 (2022-03-19) 1928浏览 0评论1868个赞
在C语言中,每一个变量都有两个属性:数据类型(Variable Types)和存储类型(Storage Classes)。数据类型即常说的字符型、整型、浮点型。……继续阅读 » 弦苦 3年前 (2022-03-19) 1200浏览 0评论2097个赞
除非显式地声明,否则,你可以假设以下讨论的内容既适合用户模式的线程,也适用于内核模式的线程。在系统级别上,Windows线程是由一个线程块执行体(ETHREAD)来表示的,如图6.7所示。ETHREAD块和它所指向的结构都位于系统地址空间中,唯一的例外是线程环境快(TEB),它位于进程地址空间中。而且,Windows子系统进程(Csrss)为Windows进……继续阅读 » 弦苦 3年前 (2022-03-19) 2138浏览 0评论1733个赞