自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

转载 C++中类的内存分布

如何计算类对象占用的字节数?原文地址:http://blog.csdn.net/mal327/article/details/6784254一个空类的话1个字节。这是为了保证n个连续空类声明时,变量地址有偏移,防止变量覆盖。 非空类的话用关键字sizeof计算。如果手工计算就相当麻烦,光padding就一堆规则了。而且有些额外信息比如虚函数(多个虚函数也只产生一

2016-10-08 17:05:48 291

转载 使用VC6.0开发COM组件 - 傻瓜式,不讲理论,只讲实例

原文地址:http://www.cnblogs.com/lin1270/archive/2013/04/02/2997042.html1.创建一个ATL COM AppWizard工程,如图:2.  选择 Dynamic link Library (DLL),其它两个请百度,或参照其它文档。如下图:3. 添加一个自己的COM类,用于导出需要用到的

2016-10-08 16:28:39 1373

转载 com组件技术

COM是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术。在COM构架下,人们可以开发出各种各样功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统。由此带来的好处是多方面的:可以将系统中的组件用新的替换掉,以便随时进行系统的升级和定制;可以在多个应用系统中重复利用同一个组件;可以方便的将应用系统扩展到网络环境下。 COM与语言,平台无关的特性使所有的

2016-10-08 16:18:53 330

转载 最近面试遇到的Windows相关的题目

原文地址:http://www.cnblogs.com/hlxs/p/4091623.html1:GetMessage和PeekMessage的区别?GetMessage:获取消息队列中的一个消息,存入MSG中,并从消息队列中移除,如果消息队列中没有消息就会阻塞;PeekMessage:查看消息,有消息,就将数据存入MSG结构中,没有消息就返回FALSE,不会阻塞,但如果没

2016-10-08 15:57:59 274

转载 多线程编程--5种方法实现线程同步

1:用Interlocked系列函数实现线程同步;2:用CRITICAL_SECTION及其系列函数实现线程同步;3:用RTL_SRWLOCK及其系列函数实现线程同步;4:用事件内核对象实现线程同步;5:用信号量内核对象实现线程同步; 1:用Interlocked系列函数实现线程同步实例如下://旋转锁#include using

2016-10-08 15:43:59 224

转载 Socket阻塞模式和非阻塞模式的区别

简单点说:阻塞就是干不完不准回来,   非组赛就是你先干,我现看看有其他事没有,完了告诉我一声我们拿最常用的send和recv两个函数来说吧... 比如你调用send函数发送一定的Byte,在系统内部send做的工作其实只是把数据传输(Copy)到TCP/IP协议栈的输出缓冲区,它执行成功并不代表数据已经成功的发送出去了,如果TCP/IP协议栈没有足够的可用缓冲区来保存你C

2016-10-08 14:39:28 589

转载 MFC对多线程编程的支持

五、MFC对多线程编程的支持  MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。  工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等。但对于Win32的API

2016-10-08 13:55:41 229

转载 MFC 多线程及线程同步

MFC 多线程及线程同步原文链接:http://www.cnblogs.com/zqrferrari/archive/2010/07/07/1773113.html一、MFC对多线程编程的支持  MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。  工作者线程没有消息机制,通常用来执行

2016-10-08 11:30:09 202

转载 windows多媒体定时器timeSetEvent()函数

MMRESULT timeSetEvent( UINT uDelay,                                  UINT uResolution,                                  LPTIMECALLBACK lpTimeProc,                                  WORD dwUser, 

2016-07-28 16:13:43 972

转载 Windows的字体LOGFONT

Windows的字体LOGFONTLOGFONT是Windows内部字体的逻辑结构,主要用于设置字体格式,其定义如下:typedef struct tagLOGFONTA{    LONG      lfHeight;    LONG      lfWidth;    LONG      lfEscapement;    LONG      lfOrie

2016-07-28 10:06:59 509

转载 CFont用法 CFont 使用详解

CFont class encapsulates the functionalities needed to manipulate the Fonts in Windows programming. A font can be created in 4 ways with a CFont class using CreateFont, CreateFontIndirect, CreatePoi

2016-07-28 10:04:42 4688 1

转载 各类文件的文件头标志

各类文件的文件头标志1、从Ultra-edit-32中提取出来的JPEG (jpg),文件头:FFD8FFPNG (png),文件头:89504E47GIF (gif),文件头:47494638TIFF (tif),文件头:49492A00Windows Bitmap (bmp),文件头:424DCAD (dwg),文件头:41433130Adobe Photosh

2016-07-27 14:10:53 746

转载 GetWindowLong函数(最好的解释资料,绝对值得一看,此函数在子类化技巧时候经常用...

分类: windows编程技术文章 2008-03-06 16:24 11017人阅读 评论(14) 收藏 举报今天在看一个代码里头写了GetWindowLong (hwnd, 0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第2个参数为0是指什么,MD,很恼火,最近终于在一个国外网站找到,我在这篇文章贴了,网站是http://www.codeguru.com/

2016-07-25 15:34:32 646

转载 socket阻塞模式和非阻塞模式

阻塞模式  Windows套接字在阻塞和非阻塞两种模式下执行I/O操作。在阻塞模式下,在I/O操作完成前,执行的操作函数一直等候而不会立即返回,该函数所在的线程会阻塞在这里。相反,在非阻塞模式下,套接字函数会立即返回,而不管I/O是否完成,该函数所在的线程会继续运行。在阻塞模式的套接字上,调用任何一个Windows Sockets API都会耗费不确定的等待时间。图所示,在调用re

2016-07-22 17:17:58 275

转载 设置套接字选项值setsockopt()函数使用详解

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

2016-07-22 17:07:12 532

转载 bind绑定

当用socket()创建套接口后,它便存在于一个名字空间(地址族)中,但并未赋名。bind()函数通过给一个未命名套接口分配一个本地名字来为套接口建立本地捆绑(主机地址/端口号)。将一本地地址与一套接口捆绑。#include int PASCAL FAR bind( SOCKET s, const struct sockaddr FAR* name,int na

2016-07-22 15:20:20 2533

转载 inet_ntoa()网络字节序IP转化为点分十进制IP

本文来自搜狗百科inet_ntoa()函数(IP地址转换函数)能把网络字节序IP转化点分十进制IP;inet_ntoa()返回的字符串存放在WINDOWS套接口实现所分配的内存中。目录1函数信息2程序示例1函数信息编辑linux下:函数声明:cha

2016-07-22 15:11:51 2254

转载 关闭套接字closesocket()

本文来自百度百科  此函数关闭套接字s,并释放分配给该套接字的资源,以后对s 的引用都将产生错误WSAENOTSOCK。如果s涉及一个打开的TCP连接,该连接被释放。中文名closesocket()注    释本函数关闭一个套接口类    型函数

2016-07-22 14:58:02 10413

转载 创建套接字

socket()函数实现创建套接字的功能。当创建套接字时,需要向该函数传递“地址家族”、“套接字类型”和“协议类型”三个参数。Windows Socket定义AF_INET为IP地址家族,所以该函数的第一个参数必须为AF_INET。该程序用TCP协议打开套接字,所以设置第二个参数为SOCK_STREAM。第三个参数为协议类型,设置为IPPROTO_TCP。在第一个和第二个参数确定的情况下,第三个参

2016-07-22 14:45:37 1016

转载 慎用WSACleanup()

函数简述:   中止Windows Sockets DLL的使用.          #include           int PASCAL FAR WSACleanup ( void );注释:       应用程序或DLL在使用Windows Sockets服务之前必须要进行一次成功的WSAStartup()调用.当它完成了Windows Socke

2016-07-22 14:38:50 1757 1

转载 WSAStartup()函数加载套接字

int WSAStartup( __in WORD wVersionRequested, __out LPWSADATA lpWSAData );WSAStartup格  式: int PASCAL FAR WSAStartup( WORD wVersionRequested,  LPWSADATA lpWSAData ); 参  数:  wVersionRequested 欲使

2016-07-22 14:35:54 404

转载 MFC网络编程笔记

一.TCP流式套接字的编程步骤在使用之前须链接库函数:工程->设置->Link->输入ws2_32.lib,OK!服务器端程序:1、加载套接字库2、创建套接字(socket)。3、将套接字绑定到一个本地地址和端口上(bind)。4、将套接字设为监听模式,准备接收客户请求(listen)。5、等待客户请求到来;当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字

2016-07-22 10:48:44 227

转载 网络编程里几个结构

IP地址结构(注意红色的语句,经常用到)struct in_addr {        union {                struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;                struct { u_short s_w1,s_w2; } S_un_w;                u_long

2016-07-22 10:45:00 285

转载 MFC中网络编程,利用套接字的过程。

服务器端  一、创建服务器套接字(CREATE)。  二、服务器套接字进行信息绑定(BIND),并开始监听连接(LISTEN)。  三、接受来自客户端的连接请求(ACCEPT),并创建接收进程。  四、开始数据传输(SEND、RECEIVE)。  五、关闭套接字(CLOSESOCKET)。客户机端  一、创建客户机套接字(CREATE)。  二、与远程服务器进行连接

2016-07-22 10:39:02 500

转载 DRAWITEMSTRUCT自绘控件结构体

DRAWITEMSTRUCT 编辑本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!DRAWITEMSTRUCT结构[1]  为需要自绘的控件或者菜单项提供了必要的信息。在需要绘制的控件或者菜单项对应的WM_DRAWITEM消息函数中得到一个指向该结构的指针。该结构是由收到的WM_DRAWITEM消息的lParam参数提供的,这个参数是指向这个结构的指

2016-07-20 11:51:12 565

转载 CreateThread创建线程函数

function CreateThread(  lpThreadAttributes: Pointer;           {安全设置}  dwStackSize: DWORD;                    {堆栈大小}  lpStartAddress: TFNThreadStartRoutine; {入口函数}  lpParameter: Pointer;      

2016-07-19 16:55:30 1793

转载 采用CreateThread()创建多线程程序

本位转自:http://blog.csdn.net/cbnotes/article/details/8277180在window环境下,Win32 提供了一系列的API函数来完成线程的创建、挂起、恢复、终结以及通信等工作:1、主要的函数列表:序号函数名功能1CreateThread()创建一个新线程

2016-07-19 15:59:27 792

转载 C++ string祥解

之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 =进行赋值操作,==进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。好了,进入正题………首先,为了在我们的程序中使用strin

2016-07-19 15:51:26 232

空空如也

空空如也

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

TA关注的人

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