自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(46)
  • 资源 (1)
  • 收藏
  • 关注

转载 windows进程中的内存结构

触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据。那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变量的呢?下面就会对此进行深入的讨论。下文中的C语言代码如没有特别声明,默认都使用VC编译的release版。 首先,来了解一下 C 语言的变量是如何在内存分部的。C 语言有全局变量(Global)、本地变量(Local),静态变量(Static)、寄存器变量(Regeiste

2009-10-09 21:30:00 204

转载 C#编程中调用WIN32 API函数

Api函数是构筑Windws应用程序的基石,每一种Windows应用程序开发工具,它提供的底层函数都间接或直接地调用了Windows   API函数,同时为了实现功能扩展,一般也都提供了调用WindowsAPI函数的接口,   也就是说具备调用动态连接库的能力。Visual   C#和其它开发工具一样也能够调用动态链接库的API函数。.NET框架本身提供了这样一种服务,允许受管辖的代码调用动态链接

2009-07-15 20:19:00 277

转载 如何有效的使用C#读取文件

你平时是怎么读取文件的?使用流读取。是的没错,C#给我们提供了非常强大的类库(又一次吹捧了.NET一番),里面封装了几乎所有我们可以想到的和我们没有想到的类,流是读取文件的一般手段,那么你真的会用它读取文件中的数据了么?真的能读完全么?通常我们读取一个文件使用如下的步骤:1、声明并使用File的OpenRead实例化一个文件流对象,就像下面这样       FileStream fs

2009-07-10 10:56:00 278

转载 如何有效的使用C#读取文件

你平时是怎么读取文件的?使用流读取。是的没错,C#给我们提供了非常强大的类库(又一次吹捧了.NET一番),里面封装了几乎所有我们可以想到的和我们没有想到的类,流是读取文件的一般手段,那么你真的会用它读取文件中的数据了么?真的能读完全么?通常我们读取一个文件使用如下的步骤:1、声明并使用File的OpenRead实例化一个文件流对象,就像下面这样       FileStream f

2009-07-10 10:51:00 160

转载 c#读取文本。

 你平时是怎么读取文件的?使用流读取。是的没错,C#给我们提供了非常强大的类库(又一次吹捧了.NET一番),里面封装了几乎所有我们可以想到的和我们没有想到的类,流是读取文件的一般手段,那么你真的会用它读取文件中的数据了么?真的能读完全么?通常我们读取一个文件使用如下的步骤:1、声明并使用File的OpenRead实例化一个文件流对象,就像下面这样       FileStream

2009-07-10 10:50:00 572 1

转载 如何有效的使用C#读取文件

 你平时是怎么读取文件的?使用流读取。是的没错,C#给我们提供了非常强大的类库(又一次吹捧了.NET一番),里面封装了几乎所有我们可以想到的和我们没有想到的类,流是读取文件的一般手段,那么你真的会用它读取文件中的数据了么?真的能读完全么?通常我们读取一个文件使用如下的步骤:1、声明并使用File的OpenRead实例化一个文件流对象,就像下面这样       FileStream

2009-07-10 10:49:00 157

转载 #define多行注意事项。

先看一个例子 #define QF_INT_LOCK(_KEY)        do{/(_KEY)=get_int_status();                     /     int_lock();                                        / }while(0)   在写多行的代码define时 ,最好在外层加上do{}whi

2009-07-09 16:23:00 980

转载 不使用变量交换a,b的值。

第一种方法:void main(){ int a=9; int b=10; a=a+b; b=a-b; a=a-b; cout cout}第二种方法:void wap(int a,int b,int *pa,int *pb);void main(){ int a=9; int b=10; wap(a,b,&a,&b);  //注意这里是传的形参,所以在wap()函数会产

2009-07-09 14:36:00 237

转载 标准c++中主要有四种强制转换类型运算符.

标准c++中主要有四种强制转换类型运算符:     const_cast,reinterpret_cast,static_cast,dynamic_cast等等。           1)static_cast(a)     将地址a转换成类型T,T和a必须是指针、引用、算术类型或枚举类型。     表达式static_cast(a), a的值转换为

2009-07-09 14:01:00 201

转载 windows下捕获数据包

经常看到论坛有人问起关于数据包的截获、分析等问题,幸好本人也对此略有所知,也写过很多的sniffer,所以就想写一系列的文章来详细深入的探讨关于数据包的知识。 我希望通过这一系列的文章,能使得关于数据包的知识得以普及,所以这系列的每一篇文章我都会有由浅入深的解释、详细的分析、以及编码步骤,另外附上带有详细注释的源码(为了照顾大多数朋友,我提供的都是MFC的源码)。 不过由于也是初学者,疏漏之处还望

2009-06-15 16:12:00 267

转载 GPRS开发系列文章之进阶篇

一、前言在前篇《GPRS开发系列文章之入门篇》里,我主要对GPRS开发中遇到的一些常用概念和一些业务逻辑做了简单的介绍,没想到得到了很多网友的支持和关注,因昨天有事因此延迟到今天才奉上这篇进阶系列文章,还请各位见谅。希望大家支持同时欢迎拍砖,共同提高。在最后一篇《GPRS开发系列文章之实战篇》我将详细叙述如何利用类库开发Client和Server端通信程序,因此本文的多数讲解将是为下文服务

2009-06-12 11:29:00 207

转载 GPRS开发系列文章之实战篇

一、前言在前篇《GPRS开发系列文章之进阶篇》里,我主要详细讲解了客户端进行GPRS连接的常用API,并对GPRSdemo测试程序中的连接类ConnManager中的一些重要函数做了说明,最后稍微提及了下服务器端要用到的一些类库。今天,在这篇实战篇中,我将在理解前两篇的基础上,结合客户端与服务器端,向大家介绍这篇GPRS开发之实战篇,向大家演示如何利用GPRS开发一个客户端与服务器端互相通信的

2009-06-12 11:28:00 201

转载 GPRS开发系列文章之入门篇

要做GPRS方面的应用软件开发,除了必备的一些程序设计知识之外,对计算机网络通信这些专业术语的了解可是一个都不能少,本人并不是专职于移动开发,所以在搞开发时也遇到了很多困难。出于这种考虑,我也想写个GPRS开发系列入门文章,服务于各位还正在搜索资料的同仁们(开发者抑或PDA爱好者等都行),同时欢迎各位移动开发的高手指点,共同提高。接下来的文章依次为:<a title="GPRS开发系列文章

2009-06-12 11:25:00 315

原创 C#转char

CStringToChar( CString& str ){int len = str.GetLength(); m_pChar = new char[len * 2]; memset(m_pChar, 0, len*2); WideCharToMultiByte(CP_ACP, WC_COMPOSITECHECK, str, len, m_pChar, len*2, NULL, NU

2009-06-12 10:53:00 266

原创 小鸡射手的专栏。

RT。

2009-06-08 13:48:00 164

转载 #pragma once 与 #ifndef 解析

为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式。在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。    方式一:    #ifndef __SOMEFILE_H__    #define __SOMEFILE_H__    ... ... // 声明、定义语句    #endif

2009-06-07 14:18:00 180

转载 栈和托管堆/值类型和引用类型/强制类型转换/装箱和拆箱

一、栈和托管堆    通用类型系统(CTS)区分两种基本类型:值类型和引用类型。它们之间的根本区别在于它们在内存中的存储方式。.NET使用两种不同的物理内存块来存储数据—栈和托管堆。如下图所示:    值类型总是在内存中占用一个预定义的字节数(例如,int类型占4个字节,而string类型占用的字节数会根据字符串的长度不同而不同),当声明一个值类型变量时,会在栈中分配适当大小的内存(除了引用类

2009-06-05 16:01:00 356 3

转载 快速掌握C#之变量类型、类型及类型转换。

1.变量:变量是指在程序的运行过程中随时可以发生变化的量。语法:数据类型 变量名;例如:string stra="这是一个字符串";2.常量:也称常数,是一种恒定的或不可变的数值或数据项。语法: const 数据类型 常量名 = 常量值;例如:const string strconst="我是常量喔";3.数据类型:在C#当中,分为两种数据类型,值类型与引用类型.值类型,表示实际数

2009-06-05 16:00:00 408

转载 线程基础知识

1. 进程与线程有那些区别和联系?     每个进程至少需要一个线程。         进程由两部分构成:进程内核对象,地址空间。线程也由两部分组成:线程内核对象,操作系统用它来对线程实施管理。线程堆栈,用于维护线程在执行代码时需要的所有函数参数和局部变量。        进程是不活泼的。进程从来不执行任何东西,它只是线程的容器。线程总是在某个进程环境中创建的,而且它的整个寿命期都在该进程中。

2009-06-04 14:41:00 174

转载 C#的UDP编程

IPEndPoint类:       在Internet中,TCP/IP使用一个网络地址和一个服务端口号来唯一标识设备。网络地址标识网络上的特定设备;端口号标识要连接到的该设备上的特定服务。网络地址和服务端口的组合称为终结点,在.NET框架中正是由EndPoint类表示这个终结点,它提供表示网络资源或服务的抽象,用以标志网络地址等信息。.Net同时也为每个受支持的地址族定义了   EndPoint

2009-06-03 16:24:00 1336

转载 c#中 uint--byte[]--char[]--string相互转换汇总

uint-----byte[]-----char[]-----string         在在做一些互操作的时候往往需要一些类型的相互转换,比如用c#访问win32api的时候往往需要向api中传入DWORD参数 即:uint参数这些数值所表示的数据在实际的应用中可能需要以字符的形式显示,但是c#对api的关系无法跟c++相比,所以在c#中进行一些类型数据的转换十分必要了,    下面将

2009-06-03 14:07:00 459

转载 Effective STL 中文版(完整版)

http://stl.winterxy.com/html/000030.html

2009-05-23 18:01:00 214

转载 微软vs2008快捷键

编辑:CTRL + M, O:折叠当前源代码文件中的所有大纲CTRL + M, L:将当前源代码的大纲在折叠与展开间切换CTRL + M, M:将当前选中的源代码在折叠与展开间切换CTRL + M, P:将当前源代码文档中的所有大纲信息清除CTRL + K, C or CTRL + E, C:注释掉所有选中的源代码部分CTRL + K, U or CTRL + E, U:取消掉所有选中的源代码部分

2009-05-22 18:04:00 238

转载 Activex、OLE、COM、OCX、DLL之间有什么区别?

      熟悉面向对象编程和网络编程的人一定对ActiveX、OLE和COM/DCOM这些概念不会陌生,但是它们之间究竟是什么样的关系,对许多们还是比较模糊的。在具体介绍它们的关系之间,我们还是先明确组件(Component)和对象(Object)之间的区别。组件是一个可重用的模块,它是由一组处理过程、数据封装和用户接口组成的业务对象(Rules Object)。组件看起来像对象,但不符合对象的

2009-05-22 10:04:00 201

转载 C# 事件处理机制

事件简介:    任何进行过图形用户界面开发的编程人员都会知道事件的概念。当用户在使用程序的时候,用户必然要和程序进行一定的交互。比如当用户点击窗体上的一个按钮后,程序就会产生该按钮被点击的事件,并通过相应的事件处理函数来响应用户的操作。这样用户的直观感觉就是程序执行了我要求的任务了。当然,事件并不一定是在和用户交互的情况下才会产生的,系统的内部也会产生一些事件并请求处理的,比如时钟事件就是一个很

2009-05-21 15:49:00 234

转载 STL 中的Vector 、Deque、 List

 vector deque 以及list 都是动态增长的,在这三者之中选择的准则主要是关注插入特性以及对元素的后续访问要求vector 表示一段连续的内存区域每个元素被顺序存储在这段内存中。对vector 的随机访问效率很高 。但是在任意位置而不是在vector 末尾插人元素则效率很低,因为它需要把待插入元素右边的每个元素都拷贝一遍。类似地删除任意一个而不是vector的最后一个元素效率同

2009-05-21 10:13:00 702

转载 头文件重复引用

#include文件的一个不利之处在于一个头文件可能会被多次包含,为了说明这种错误,考虑下面的代码:#include "x.h"#include "x.h"显然,这里文件x.h被包含了两次,没有人会故意编写这样的代码。但是下面的代码:#include "a.h"#include "b.h"看上去没什么问题。如果a.h和b.h都包含了一个头文件x.h。那么x.h在此也同样被包含了两次,只不过它的形式

2009-05-20 17:36:00 5272 4

转载 const用法详解

面向对象是C++的重要特性. 但是c++在c的基础上新增加的几点优化也是很耀眼的 就const直接可以取代c中的#define 以下几点很重要,学不好后果也也很严重 const 1. 限定符声明变量只能被读   const int i=5;   int j=0;   ...   i=j;  //非法,导致编译错误   j=i;  //合法 2. 必须初始化   const int i=5;   

2009-05-20 14:08:00 314

转载 setsockopt()函数用法

1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));2. 如果要已经处于连接状态的soket在调用closesocket后强制关闭,不经历TIME_WA

2009-05-19 11:32:00 4704 4

转载 getsockopt()/setsockopt()函数的使用收藏

正在做tcp协议的程序,由于发送的数据较大,所以的设置tcp套接口缓冲区的大小,否则接收到的数据只是发送的一部分。我要做的是发送采集到的图像数据,不设置缓冲去的大小,每次接受到的图像总有一部分是黑色的或者整个图像都是黑色的。 关于getsockopt()/setsockopt()函数的参数格式,相关的介绍很多,我只写设置缓冲区的形式:SO_RCVBUF和SO_SNDBUF每个套接口都有一个

2009-05-19 11:31:00 426

原创 register变量

Register修饰符暗示编译程序相应的变量将将被频繁使用,如果可能的话,应将其保存在CPU的寄存器中,以指加快其存取速度。但是,使用register修饰符有几点限制。     首先,register变量必须是能被CPU寄存器所接受的类型,这通常意味着register变量必须是一个单个的值,并且其长度应小於或等於整型的长度。但是,有些机器的寄存器也能存放浮点数。     其次,因为register

2009-05-18 10:45:00 247

转载 HTTP协议详解。

引言                                        HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTT

2009-05-13 13:35:00 143

原创 关于%

c#中可以对double型进行%操作,在c++中不行。

2009-05-08 15:36:00 145

原创 类里的函数不需要实现。

.h文件里class Test{public: Test(); ~Test(); void print(int a);protected: int a; char b;private:};.cpp文件里#include "testclassimplement.h" Test::Test() {  a=10;  b=b; }  Test::~Test() { }构造函数和析构

2009-05-05 15:41:00 179

转载 分享Java面试中遇到的一些经典算法题目。

1.写一个方法,用一个for循环打印九九乘法表/**     * 打印九九乘法口诀表     */    public void nineNineMulitTable(){        for (int i = 1,j = 1; j 9; i++) {               System.out.print(i+"*"+j+"="+i*j+" ");               if

2009-04-29 11:23:00 180

原创 涉及到转义字符的字符不能赋值。

#include #include using namespace std;void main(){  char cPath[15]="/kanglei/hello";  char temp[15];  for (int i=0;i  {   temp[i]=cPath[i];  }}输出:kangleihello////////////////////////////////////

2009-04-29 10:24:00 204

原创 typedef 的用法

用途一: 定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如: char* pa, pb;  // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量; 以下则可行: typedef char* PCHAR;  PCHAR pa, pb;          用途二: 

2009-04-24 16:09:00 134

原创 结构体和类中使用等号。

#include using namespace std;struct Test { int a; char b;};void main(){ Test X,Y; X.a=2; X.b=k; Y=X; cout cout cout} 如果是类的话,则需重载运算符。 

2009-04-24 14:43:00 296

原创 在MFC中,ON_COMMAND, ON_MESSAGE, ON_NOTIFY它们的区别。

ON_NOTIFY是控件向其父窗口发送消息处理的宏,ON_COMMAND是菜单和工具栏项处理消息的宏,ON_MESSAGE是处理自定义消息的宏 ON_COMMAND用来处理WM_COMMAND消息。老式的windows控件发送WM_COMMAND作为对父窗口的通知消息。另外,菜单,工具栏也向框架窗口发送WM_COMMAND消息。           ON_MESSAGE主要用来处理用户自定义消

2009-04-23 20:56:00 1275 2

原创 追MM与23种设计模式。

1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory   工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户

2009-04-22 14:32:00 140

mfc深入浅出

分析了MFC的结构和设计(《MFC深入浅出》),华中理工大学出版。书的内容建立在对MSDN和MFC SOURCE CODE的大量分析上,该书对于希望学习MFC的人来说,是较有价值的。

2012-06-14

空空如也

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

TA关注的人

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