![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
deepfuture
这个作者很懒,什么都没留下…
展开
-
GDI对象
1、CBitmap类:对GDI的位图进行封装并用于管理windows的位图。2、CBrush类:用于管理画刷,按其填充类型分为全色填充、预定义填充、自定义填充。3、CFont类:用于管理输出文本的字体。4、CPalette类:用于管理WINDOWS的调色板。5、CPen类:用于管理画笔6、CRgn类:用于操作WINDOWS的区域。原创 2009-12-22 20:20:00 · 494 阅读 · 0 评论 -
c++ -if语句比较注意
4.3.1 布尔变量与零值比较z 【规则4-3-1】不可将布尔变量直接与TRUE、FALSE 或者1、0 进行比较。根据布尔类型的语义,零值为“假”(记为FALSE),任何非零值都是“真”(记为TRUE)。TRUE 的值究竟是什么并没有统一的标准。例如Visual C++ 将TRUE 定义为1,而Visual Basic 则将TRUE 定义为-1。假设布尔变量名字为flag,它与零值比较的标准if转载 2009-12-21 20:44:00 · 507 阅读 · 0 评论 -
f o r k函数
一个现存进程调用f o r k函数是U N I X内核创建一个新进程的唯一方法(这并不适用于前节提及的交换进程、i n i t进程和页精灵进程。这些进程是由内核作为自举过程的一部分以特殊方式创建的)。 #i nclude #i nclude pid_t fork(void); 返回:子进程中为0,转载 2009-12-21 20:48:00 · 749 阅读 · 0 评论 -
WIN网络编程-IOCP与可伸缩网络程序
///////////////////////////////////////////////////IOCPDemo.cpp文件 调试通过//I/O完成端口最初的设计是应用程序发出一些异步I/O请求,当这些请求完//成时,设备驱动把这些工作排序到完成端口,在完成端口等待的线程池//可以处理这些完成I/O。//首先调用CreateCompletionPort创建一个完成端口对象转载 2009-12-21 21:13:00 · 342 阅读 · 0 评论 -
WIN网络编程-WSAEventSelect
//它与WSAAsyncSelect模型类似是因为它也接收FD_XXX类型的网络事件,是//经由事件对象句柄通知。//为一组网络事件创建一个事件对象,再调用WSAEventSelect函数将网络事件//和事件对象关联起来,当网络事件发生是,WINSOCK使相应的事件对象受信,//在事件对象上等待函数WSAWaitForMultipleEvents就会返回。然后,调//用转载 2009-12-21 21:20:00 · 379 阅读 · 0 评论 -
WIN网络编程-WSAAsyncSelect
///////////////////////////////////////////////// WSAAsyncSelect.cpp文件//#define WSAGETSELECTERROR(lParam) HIWORD(lParam)//高字为出错代码//#define WSAGETSELECTEVENT(lParam) LOWORD(lParam)//低字为通知码//允许应用程转载 2009-12-21 21:22:00 · 292 阅读 · 0 评论 -
WIN网络编程-NetTime
//////////////////////////////////////////////////////////// NetTime.cpp文件//通过internet从129.132.2.21中获取时间信息#include "../common/InitSock.h"#include CInitSock initSock; void SetTimeFromTP(ULONG转载 2009-12-21 21:23:00 · 259 阅读 · 0 评论 -
WIN网络编程-UDPClient
//////////////////////////////////////////////////////////// UDPClient文件#include "../common/InitSock.h"#include CInitSock initSock; //初始化Winsock库int main(){ // 创建套节字 SOCKET s = ::socket(AF_INET,转载 2009-12-21 21:24:00 · 264 阅读 · 0 评论 -
WIN网络编程-UDPServer
//////////////////////////////////////////////////////////// UDPServer.cpp文件#include "../common/InitSock.h"#include CInitSock initSock; //初始化Winsock库int main(){ // 创建套节字 SOCKET s = ::socket(AF_IN转载 2009-12-21 21:25:00 · 301 阅读 · 0 评论 -
WIN网络编程-TCPClient
//////////////////////////////////////////////////////////// TCPClient.cpp文件#include "../common/InitSock.h"#include CInitSock initSock; // 初始化Winsock库int main(){ // 创建套节字 SOCKET s = ::socket(A转载 2009-12-21 21:25:00 · 278 阅读 · 0 评论 -
c++对象模型(关于STRUCT和CLASS)
1、STRUCT:可以利用这个关键字实现一些技巧,这些技巧是类所不具备的。比如可以形成一个空间拥有可变大小的数组。struct mumble{char pc[1];}struct mumbel *pmumbl=(struct mumble*) malloc(sizeof(structmumble)+strlen(string)+1);strcpy(pmumbl->pc,string);建立一个结构原创 2009-12-22 21:08:00 · 308 阅读 · 0 评论 -
c++对象模型学习心得(初步继承模型)
1、在虚拟继承中,基类不管在继承串链中被派生过多少次,永远只存在一个实体,称为SUBOBJECT。2、继承的方案(1)每一个基类可以被它的派生类对象内的一个槽指出,该槽含有这个基类对象(BASE CLASS OBJECT)的地址,这样的话,派生类对象的大小不会因为其基类的改变而受到影响,因为派生类仅保存基类对象的指针,缺点是这样会导致存取时间和空间的负担,因为要多次存取才能取到基类对象。(2)生成原创 2009-12-22 21:07:00 · 296 阅读 · 0 评论 -
图形设备接口
1、CPaintDC:windows的通常绘图过程。2、CClientDC:对窗口的客户区进行操作。3、CMetaFileDC:将信息输出至一个元文件。4、CWindoDC :用于整个窗口区域。原创 2009-12-22 20:25:00 · 314 阅读 · 0 评论 -
按指定大小显示图片
CBitmap bmp; CClientDC dc(this); if(bmp.LoadBitmap(IDB_BITMAP_dw)) { BITMAP bmpInfo; bmp.GetBitmap(&bmpInfo); CDC dcMemory; dcMemory.CreateCompatibleDC(&dc); CBitmap原创 2009-12-22 20:27:00 · 313 阅读 · 0 评论 -
vc学习笔记--2
1、cdocument调用onclosedocument成员函数,当应用程序要关闭文档时。2、文档类将调用onopendocument和onsavedocumnet函数,以分别从磁盘上读取文档,或者向磁盘写入文档。3、onfilesendmail把文档对象作为邮件的一个附件发送。4、消息映射BEGIN_MESSAGE_MAP(CAboutDlg,CDialog) ON_B原创 2009-12-22 20:29:00 · 281 阅读 · 0 评论 -
vc学习笔记---1
框架窗口是一个包含视图的窗口,是通过这个CMAINFRAME类由APPWIZARD生成的SDI应用程序实现的。 CMAINFRAME类从CFRAMEWND基类中派生了大多数功能。 CDOCUMENT类为应用程序的文档对象提供了基本功能,文档与视图处于一对多的关系。原创 2009-12-22 20:31:00 · 285 阅读 · 0 评论 -
C++ 学习心得(常量与变量)
extern int getsize();void mumble(){int size=getsize();vector vec(size);vector ::iterator iter=vec.begin();for (int ix=0; iter!=vec.end();++iter,++ix)*iter=ix;}解释:迭代器是一个支持指针类型抽象的类对象,iterator是vector类模板中原创 2009-12-22 20:33:00 · 291 阅读 · 0 评论 -
c++学习心得(枚举)
定义:1、enum aa {input =1,output,append};//枚举值从1开始enum aa {input,output,append};//枚举值从0开始enum aa{input=1,output=3,append};//枚举值在一个定义中可以不唯一,在这里,output和append都为32、enum aa =input;aa=append;3、aa x=output;aa原创 2009-12-22 20:38:00 · 335 阅读 · 0 评论 -
c++学习心得(pair,操作符重载,this)
pair1、包括2个不同或相同类型的值2、#includepair xx("abc",123)xx.first;//第一个元素abcxx.second;//第二个元素123===========this类中的this指针被除数自动设置为指向左侧的类对象==========操作符重载1、定义return_type operator op(参数列表)2、可以防止自己拷贝给自己string& strin原创 2009-12-22 20:52:00 · 658 阅读 · 0 评论 -
c++的sizeof
sizeof (type name)//类型的长度sizeof (对象) 和sizeof 对象// 对象的长度原创 2009-12-22 21:05:00 · 333 阅读 · 0 评论 -
c++(位操作符)
1、按位非--expr2、左、右移>expr13、按位与,按位异或,按位或& , ^ ,|expr1&expr2 expr1^expr2,expr1|expr24、按位与,按位异或,按位或赋值&=,^=,|=原创 2009-12-22 21:07:00 · 354 阅读 · 0 评论 -
WIN网络编程-select(I/O模型)
//////////////////////////////////////////////////////// select.cpp文件//select的优点是程序能够在单个线程内同时处理多个套接字连接,但是增加//到fd_set结构的套接字是有限制的。winsock2.h定义为64,在包含winsock2.h//之前重新定义它是可以的,但是最大不能超过1024,并且此值太大,转载 2009-12-21 21:30:00 · 292 阅读 · 0 评论 -
win网络编程-列出IP地址
#include "../common/InitSock.h"#include CInitSock initSock; //初始化Winsock库void main(){ char szHost[256]; // 取得本地主机名称 ::gethostname(szHost, 256); // 通过主机名得到地址信息 hostent *pHost = ::gethostbyname转载 2009-12-21 21:32:00 · 321 阅读 · 0 评论 -
WIN网络编程-winsock库的管理类
1、在每次编写网络程序时必须编写代码载入和释放Winsock库,可定义一个类来管理。(VC实现)2、代码#include #pragma comment(lib,"WS2_32")class CInitSock{public: CInitSock(BYTE minorVer=2,BYTEmajorVer=2) { WSADATAwsaData;转载 2009-12-21 21:32:00 · 221 阅读 · 0 评论 -
typedef的用途和陷阱
用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针,// 和一个字符变量;以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针虽然:char *pa, *pb;也可行,但相对来转载 2009-12-22 11:25:00 · 388 阅读 · 0 评论 -
WINDOWS环境子系统
1、应用程序调用WINDOWS系统的服务,如API等,都是是客户/服务请求的方式进行的。2、WINDOWS环境子系统做为服务端提供服务,主要有以下几方面:(1)环境子系统进程(Csrss.exe)包含以下支持: 控制台(文本)窗口 创建和删除进程和线程 对16位虚拟DOS机进程的一部分支持 其它一些函数,如GetTempFile、DefineDos原创 2009-12-22 11:35:00 · 919 阅读 · 0 评论 -
多线程版本的RunTime Library
1、unsigned long _beginthreadex(void *security,;相当于SECURITY参数unsigned stack_szie,;新线程的堆栈大小,以字节为单位unsigned (__stdcall *start_address)(void*)),;线程启动时所执行的函数。;对应的WIN32数据类型是LPTHREAD_START_ROUTINE原创 2009-12-22 11:36:00 · 520 阅读 · 0 评论 -
Windows 语音编程初步
[编程学习]Windows语音编程初步网上资源, 软件技术newqiang 发表于 2006-12-6 16:00:43转自:iwaswzqWindows 语音编程初步一、SAPI简介软件中的语音技术包括两方面的内容,一个是语音识别(speech recognition) 和语音合成(speechsynthesis)转载 2009-12-22 11:41:00 · 658 阅读 · 0 评论 -
ACII码表
ACII码表转载 2009-12-22 11:47:00 · 5156 阅读 · 0 评论 -
模态对话框
1、用EndDialog结束2、创建:DialogBoxParam3、不用注册窗口类,不用写消息循环,因为WINDOWS会在内部建立一个消息循环。4、返回TRUE,表示已经处理该消息,返回FALSE表示没有处理原创 2009-12-22 11:50:00 · 301 阅读 · 0 评论 -
设置窗口类属性的API
invoke SetClassLong,hWnd,nIndex,dwNewLong原创 2009-12-22 11:51:00 · 407 阅读 · 0 评论 -
windows最佳开源软件一览
最佳开源软件一览JDictionary1.8 超过140万词条的百科辞典KeePass 0.99b 管理你的密码Keynote1.6.5 字处理软件和数据库的结合体,带有良好的搜索机制Media Portal0.1.1.1 视频、DVD、音频、图片播放工具,同时支持电视和电台广播MP3 Tag Tools1.2.008 mp3的文件ID标签编辑工具MP3Gain 1.2.5 在不影响音质的情转载 2009-12-22 11:54:00 · 758 阅读 · 0 评论 -
wxWidgets程序一般执行过程
下面大概的描述一下整个程序的执行过程:1. 依照系统平台的不同,不同的main函数或者winmain函数或者其它类似的函数被调用(这个函数是由wxWidgets内部提供的,而不是由应用程序提供的).wxWidgets 初始化它自己的数据结构并且创建一个MyApp的实例.2. wxWidgets调用MyApp::OnInit函数, 这个函数会创建一个MyFrame的实例.3. MyFrame的构造函原创 2009-12-23 14:37:00 · 494 阅读 · 0 评论 -
MFC对象与WIN32句柄的映射-TLS
1、没有办法把一个MFC某线程交到另一个线程,不能在线程间传递MFC对象指针,包括常用的MFC对象如CWND、CDC、CFONT等。2、如果两个线程都调用CWND::GETDLGITEM()以取得对话框中的一个控件(如EDIT),则每个线程获得不同的指针,当对此指针的一个索求行为出现时,MFC产生出一些临时性对象,这些对象若被许多线程共享,MFC没有能力预期它们的生命。3、这个限制是说,你原创 2009-12-22 11:24:00 · 359 阅读 · 0 评论 -
windows操作系统关键的系统组件
一、 1、NTDLL。DLL系统支持库,用于子系统DLL,包含以下两种类型的函数:(1)系统服务分发存根,会调用WINDOWS执行体系统服务(2)内部支持函数,供子系统、子系统DLL及其他的原生映像文件使用第一组函数为执行体系统服务提供了接口,在用户模式下可以通过这些接口函数调用执行体的系统服务。对于每个这样的函数,NTDLL包含了一个同名的入口点。函数内部的代码包含了与处理器原创 2009-12-22 11:19:00 · 864 阅读 · 0 评论 -
WIN网络编程-winsock库的管理类
1、在每次编写网络程序时必须编写代码载入和释放Winsock库,可定义一个类来管理。(VC实现)2、代码#include #pragma comment(lib,"WS2_32")class CInitSock{public: CInitSock(BYTE minorVer=2,BYTEmajorVer=2) { WSADATAwsaData;转载 2009-12-21 21:34:00 · 177 阅读 · 0 评论 -
NET中EE垃圾回收原理
1、EE是执行引擎,EE拥有对象主要是两种途径:1)NEW方式2)静态变量2、对象可能拥有其它对象,这是树图的开始,CLR以树图为基础进行搜索,记录对象的引用。程序拥有的所有静态变量或者栈上的所有变量为最初的树集。3、垃圾收集模块决定要开始收集时,调用EE,请求停止所有线程,从而可以检查线程堆栈。1)EE办理后,栈冻结,垃圾收集器通知EE开始遍历所有的栈和静态变量,然后返回最初原创 2009-12-21 21:36:00 · 264 阅读 · 0 评论 -
C的可变参数传入
1、可变参数,即函数在声明和使用时可以不指定参数个数,参数可变2、宏va_arg()、va_start()、va_end()共同使用完成向函数传入数目可变的变元操作。3、具体使用如调用了一个求和函数:double dbsumdbsum=sum_series(5,10.0,20,1.9,9.1,4,9)//第一个参数5表示参数个数求和函数如下:double sum_ser原创 2009-12-21 21:37:00 · 268 阅读 · 0 评论 -
CTIMER类-无论机器运行速度如何,都能保持恒定的频率
无论机器运行速度如何,都能保持恒定的频率 CTIMER.CPP-------------------------#include "CTimer.h"//---------------------- default constructor------------------------------////-----------------------------------转载 2009-12-21 21:39:00 · 533 阅读 · 0 评论 -
列表类设置背景图片(VC+MFC)
在重载的类里添加消息响应函数HBRUSH CBitmapListBox::CtlColor(CDC* pDC, UINT nCtlColor){ CBrush m_brHollow; m_brHollow.CreateStockObject(HOLLOW_BRUSH); pDC->SetBkMode(TRANSPARENT); pDC->SetTextColor(RGB(64,32,0));原创 2009-12-21 21:40:00 · 968 阅读 · 1 评论