- 博客(26)
- 资源 (27)
- 收藏
- 关注
转载 CSocket 和CAsyncSocket类介绍
一、实现方法 微软的MFC把复杂的WinSock API函数封装到类里,这使得编写网络应用程序更容易。CAsyncSocket类逐个封装了WinSock API,为高级网络程序员提供了更加有力而灵活的方法。这个类基于程序员了解网络通讯的假设,目的是为了在MFC中使用WinSock,程序员有责任处理诸如阻塞、字节顺序和在Unicode与MBCS 间转换字符的任务。为了给程序员提供更方便的接口以自
2012-02-29 12:17:15 497
转载 LPCTSTR和GetBuffer与CString
传参数时不可以传CString ,CString 在ATL MFC中定义是不同的,而且在各个版本里也略有不同。注意。有两方法LPCTSTR和GetBuffer() 看看这个 LPCTSTR 与 GetBuffer(int nMinBufLength) 这两个函数提供了与标准C的兼容转换。在实际中使用频率很高,但却是最容易出错的地方。这两个
2012-02-28 18:39:13 1587
转载 Getbuffer ReleaseBuffer Cstring
getbuffer是为了让你使用CString类中,保存字符串缓冲区的那块指针. 至于releasebuffer,在MSDN中有这样一句话. If you use the pointer returned by GetBuffer to change the string contents, you must ca
2012-02-28 18:38:43 473
转载 winsock,ws2_32,WinInet,WinHttp对比
在Windows平台进行网络程序开发, 可以使用不同的库, 但是最常用的还是微软自己开发的库。具体说来,有:(1)Winsock,工作于网络层和传输层的开发库,对于编写TCP,UDP,以及原始IP通信程序非常合适。函数原形也基本符合Unix socket标准。Windows平台上的大多数程序,如QQ,讯雷等都基于其开发。(2)ws2_32,是Winsock的升级版本,在兼容的基础上增加了不
2012-02-27 22:28:04 696
原创 Visual c++网络通信编程笔记
1 . winsock有两个版本是winsock1.1和winsock2.02. CAsyncSocket和CSocket是MFC类库中的两个类,CAsyncSocket是CSocket的父类。3. winsock属于传输层也网络层4. 学会使用这一技巧struct in_addr { union { struct { u_char s_b1,s_b2,s_b3,s_b4;
2012-02-27 21:23:55 621
转载 inline函数
一、在C&C++中 一、inline 关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。 表达式形式的宏定义一例: #define ExpressionName(Var1,Var2) ((Var1)+(Var2))*((Var1)-(Var2))为什么要取代这种形式呢,且听我道来: 1. 首先谈一下在C中使用这种形式宏定义的原因,
2012-02-26 18:47:00 264
转载 模板的声明和实现为何要放在头文件中?
源: http://blog.csdn.net/lqk1985/archive/2008/10/24/3136364.aspx如何组织编写模板程序 发表日期: 1/21/2003 12:28:58 PM 发表人: Nemanja Trifunovic前言常遇到询问使用模板到底是否容易的问题,我的回答是:“模板的使用是容易的,但组织编写却不容易”。看看我们几乎每天都能
2012-02-25 22:19:52 753
转载 模板函数与函数模板
1.函数指针——指针函数 函数指针的重点是指针。表示的是一个指针,它指向的是一个函数,例子: int (*pf)(); 指针函数的重点是函数。表示的是一个函数,它的返回值是指针。例子: int* fun(); 2.数组指针——指针数组 数组指针的重点是指针。表示的是一个指针,它指向的是一个数组,例子: int (*pa
2012-02-25 20:45:47 344
原创 一些代码
1.将二进制的EXE加载第一步:将要加载的应用程序导入到工程中,并设置类型为EXE类型第二步: HRSRC hRes; hRes=FindResource(NULL,MAKEINTRESOURCE(IDR_EXE1),"EXE"); HGLOBAL hgRes; hgRes=LoadResource(NULL,hRes); void *pvoid=LockRe
2012-02-23 22:42:40 282
转载 Windows内存管理
本文主要内容:1.基本概念:物理内存、虚拟内存;物理地址、虚拟地址、逻辑地址;页目录,页表2.Windows内存管理3.CPU段式内存管理4.CPU页式内存管理 一、基本概念1. 两个内存概念物理内存:人尽皆知,就是插在主板上的内存条。他是固定的,内存条的容量多大,物理内存就有多大(集成显卡系统除外)。但是如果程序运行很多或者程序本身很大的话,就会导致大量的物理内存
2012-02-23 21:29:11 1770
转载 程序在内存中运行的奥秘
内存管理是操作系统的核心功能,无论对于开发者还是系统管理员内存管理的重要性都是不言而喻的。我会在接下来的几篇文章通过计算机的实际运行过程谈谈内存管理,当然在必要的时候我也会从底层原理去阐释这个问题。我们提到的概念是不局限于平台特性的通用概念,不过为了阐述这些概念我们选取的实例大多来源于Linux和基于x86架构的32位Windows操作系统。这篇文章,我们首先来看看程序是如何使用内存的。多任务
2012-02-23 20:48:45 365
转载 CString/string/char *比较详解
关键点:主要用于MFC的编写,而属于STL,两者都是符合标准C++的,但是在非 windows平台或者说VC上还是用吧。另外还有一个这是传统C++才有的~ (一) 概述 string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中; CString(typedef CStringT> CString)为Visu
2012-02-23 10:52:26 299
转载 关于ANSI和unicode
ANSI与UniCode的区别什么是ANSI,什么又是UNICODE呢?其实这是两种不同的编码方式标准,ANSI中的字符采用8bit,而UNICODE中的字符采用16bit。(对于字符来说ANSI以单字节存放英文字符,以双字节存放中文等字符,而Unicode下,英文和中文的字符都以双字节存放)Unicode码也是一种国际标准编码,采用二个字节编码,与ANSI码不兼容。目前,在网络、Window
2012-02-23 10:35:57 419
转载 关于关键字static和extern和const
1、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非
2012-02-22 22:22:10 712
转载 【MFC】容器类的使用
对于MFC中所提到的基本容器类,做一个基本的介绍和编程操作。 如有数据结构基础,可以直接看第四部分对容器类的操作。 第一,MFC提供三种基本的容器类:arrays(数组), lists(链表), maps(映射,也称作字典). 第二,各容器类的特征分类类型排序?索引?插入元素查找特定元素重复的元素?ListYesNo
2012-02-21 14:18:00 7501
转载 MDI程序与SDI程序的区别
多文档MDI应用程序和单文档SDI应用程序的主要不同在于:它支持多个文档、甚至多个文档类型。从用户的角度,他们有以下几点差别:(1) MDI允许用户同时打开多个文档,而SDI只能打开一个文档。(2) MDI应用程序甚至可以支持多种文档类型。例如word不仅支持.doc文件,还可以打开web页面文件.html等。(3) MDI应用程序通常包含一个windows菜单,可以
2012-02-21 12:34:19 1461
转载 CreateThread,_beginthread,_beginthreadx的区别
首先要澄清一个问题,那就是CreateThread是Windows的API函数,而_beginthread和_beginthreadex则是CRT库函数,查看这两个CRT函数的代码可以得知其实它们内部是调用的CreateThread(这很显然嘛,CRT库也是要运行在Windows上)。这两个CRT函数与CreateThread有什么区别呢?区别在于这两个CRT函数针对其它CRT库函数,特别是那
2012-02-20 10:22:40 351
转载 关于winapi和CALLBACK,_stdcall _cdecl _pascal等的分析与归纳理解
WINAPI和CALLBACK这两个宏有什么区别呢?_stdcall _cdecl _pascal _fastcall这些关键字是什么意思,有什么区别呢? 首先看MSDN里给出的解释,不过有些语焉不详哦WINAPI ·Use in place of FAR PASCAL in API declarations. If you are writing a DLL with exp
2012-02-20 09:24:58 647
转载 RTTI
百科名片RTTI(Run-Time Type Identification,通过运行时类型识别)程序能够使用基类的指针或引用来检查这些指针或引用所指的对象的实际派生类型。编辑本段RTTI介绍 RTTI提供了以下两个非常有用的操作符: (1)typeid操作符,返回指针和引用所指的实际类型; (2)dynamic_cast操作符,将基类类型的
2012-02-17 11:28:53 372
转载 c++对象切割(Object Slicing)
当把一个派生类对象赋给一个基类对象时,会发生对象切割。(另外用基类对象强制转换派生类对象也会)对象切割会发生什么呢?#include using namespace std;class CShape{public: CShape () { m_color=0; }
2012-02-17 10:35:14 4994
转载 基类派生类转换问题
派生类的对象都含有基类对象作为其一部分,我们可以将指向派生类型的引用转换为指向它的基类型的引用,像转换指针一样,我们可以用派生类的对象初始化或赋值基类对象,反之却不行。class base{public:};class derived:public base{public:};int main(void) { derived obj_d; base ob
2012-02-17 09:46:05 892
转载 C++类型转换总结
C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)a。C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。const_cast,字面上理解就是去const属性。static_cast,命名上理解是静态类型转换。如int转换成char。dynamic_cast,命名上理解是动态类型转换。如子类和父类之间的多态类
2012-02-16 22:43:05 282
原创 核心对象
核心对象:是系统的一种资源,系统对象一旦产生,任何应用程序都可以开启并使用该对象。系统给核心对象一个计数值作为管理之用。核心对象的产生方式不同,都会获得一个handle作为识别,每被使用一次,其对应的计数值加1.核心对象的结束方式相当一致,调用closehandle即可。核心对象的种类:eventmutexsemaphorefilefile-mappingproce
2012-02-15 22:09:23 433
转载 WinAPI【远程注入】三种注入方案
WinAPI【远程注入】三种注入方案 导言:我们在Code project(www.codeproject.com)上可以找到许多密码间谍程序(译者注:那些可以看到别的程序中密码框内容的软件),他们都依赖于Windows钩子技术。要实现这个还有其他的方法吗?有!但是,首先,让我们简单回顾一下我们要实现的目标,以便你能弄清楚我在说什么。要读取一个控件的内容,不管它是否
2012-02-12 10:38:55 1204
转载 keybd_event/mouse_event和SendMessage/PostMessage的区别 .
keybd_event只用来产生键盘事件,系统捕捉到键盘事件后,会转化为键盘消息的形式派发给拥有键盘输入焦点的应用程序。PostMessage首先把消息发送到指定句柄所在线程的消息队列再由线程派发。SendMessage直接把消息送到指定句柄窗体或控件。
2012-02-09 21:54:49 2400
转载 内存泄露的原因
1.new,malloc后没有delete,free2.创建内核对象(比如CreateFile,CreateMutex,CreateThread),后没有释放内核对象句柄.3.创建内存映射文件,CreateFileMapping,MapViewOfFile后没有CloseHandle(),UnMapviewofFile4.创建GDI对象后,比如LoadIcon,LoadIm
2012-02-01 19:23:08 11763 1
source insight破解版
2012-10-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人