自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 c++标准库以及STL

<br />1.C++标准库<br />   作为C++,其标准库包括以下内容:<br /> <br />(1)C标准函数库,基本保持了与原有C语言程序库的良好兼容,尽管有些微变化。人们总会忍不住留恋过去的美好岁月,如果你曾经是一个C程序员,对这一点一定体会颇深。或许有一点会让你觉得奇怪,那就是在C++标准库中存在两套C的函数库,一套是带有.h扩展名的(比如<stdio.h>),而另一套则没有(比如<cstdio>)。它们确实没有太大的不同。<br />(2)语言支持(language support)部分

2010-06-30 22:06:00 1382

转载 CreateIoCompletionPort和完成端口

摘自《Networking Programming for Microsoft Windows》第八章“完成端口”模型是迄今为止最为复杂的一种I/O模型。然而,假若一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,往往可以达到最佳的系统性能!从本质上说,完成端口模型要求我们创建一个Win32完成端口对象,通过指定数量的线程,对重叠I/O请求进行管理,以便为已经完成的重叠I/O请求提供服务。使用这种模型之前,首先要创建一个I/O完成端口对象,用它面向任意数量的套接字句柄,管理

2010-06-30 16:15:00 826

转载 关于句柄和伪句柄

<br />GetCurrentProcess(), DuplicateHandle()<br />Window中为什么会有句柄的概念:<br />从Visual C++的头文件来看,HANDLE被typedef为void的指针,那是指向未确定数据结构的指针:typedef void* HANDLE; <br />但是这并不说明任何问题,因为句柄远远不只是指向任意数据类型的指针。它是指向数据对象指针的指针。句柄的使用来源于早期的Windows,当时它只能在有限内存的机器中允许(因为当时内存昂贵也存储小)。为

2010-06-26 15:07:00 759

原创 GetMessage或PeekMessage提取消息算法

<br />1)如果QS_SENDMESSAGE标志被设置,GetMessage或PeekMessage调用窗口过程处理<br />2)查看登入消息队列是否有消息,若有则调用DispatchMessage让相应的窗口过程来处理<br />3)如果QS_QUIT标志被设置,GetMessage或PeekMessage返回一个WM_QUIT消息<br />4)查看虚拟输入队列,GetMessage或PeekMessage返回硬件输入消息<br />5)如果QS_PAINT标志被设置,GetMessage或Pee

2010-06-22 21:16:00 882

原创 ListCtrl设置可写

<br />// MyListCtrl.cpp : 实现文件//#include "stdafx.h"#include "EditListCtrl.h"#include "MyListCtrl.h"// CMyListCtrlIMPLEMENT_DYNAMIC(CMyListCtrl, CListCtrl)CMyListCtrl::CMyListCtrl(){}CMyListCtrl::~CMyListCtrl(){}B

2010-06-19 10:54:00 1946

原创 进程通信——使用WM_COPYDATA消息通信

使用WM_COPYDATA消息通信<br />对于少量数据可以用WM_COPYDATA方便地实现通信。由于SendMessage()是阻塞的,只有接收方响应了消息,SendMessage()才能返回,否则一直阻塞。所以,对于大量数据来说,用SendMessage()就容易造成窗口假死。<br /><br />通过WM_COPYDATA消息实现进程间通信的方法<br />在Win32中,WM_COPYDATA消息主要目的是允许在进程间传递只读数据。SDK文档推荐用户使用SendMessage()函数,接收方在

2010-06-09 16:30:00 781

原创 __uuidof模拟

<br />#include <iostream>using namespace std;template <class Class>struct _UuidTraits{};#define _DEFINE_UUID(Class, uuid) /template <> /

2010-06-08 14:01:00 2197

原创 BSTR在函数中的使用

<br />右值:<br />BSTR bstr = ::SysAllocString("cert");<br />SetText(bstr);<br />SysFreeString(bstr);<br /> <br />左值:<br />BSTR bstr = NULL;<br />GetText(bstr);   //这个函数里面要用::SysAllocString来给bstr申请内存<br />SysFreeString(bstr);

2010-06-05 21:45:00 950

原创 VC中BSTR、Char*、CString和CComBSTR类型的转换

1、char*转换成CString若将char*转换成CString,除了直接赋值外,还可使用CString::format进行。例如:char* p = "This is a test"; 或CString theString = p;theString.format("%s", p);theString = p;2、CString转换成char*若将CString类转换成char*(LPSTR)类型,常常使用下列三种方法:方法一,使用强制转换。例如:CString theString( "This is

2010-06-05 21:25:00 10395

原创 链接库总结

<br />链接库分为动态链接库(dll)和静态链接库(lib)<br />当动态链接库有导出的数据,数据包括函数、类以及变量,就会生成一个.lib文件,注意这个.lib文件不是静态链接库而是导出库。<br />链接库的加载方式<br />静态链接库的加载方式只有一种#pragma comment(lib, ".lib")<br />动态链接库的加载方式有两种:<br />一种静态加载<br />先导入库#pragma comment(lib, ".lib"),这个和加载静态库一样,然后把.dll放在工程目

2010-06-03 21:13:00 883

原创 MFC的PreTranslateMessage截获Ctrl + 滚轮消息

<br />if (LOWORD(pMsg->wParam) == MK_CONTROL && pMsg->message == WM_MOUSEWHEEL) { MessageBox("OK"); }

2010-06-02 16:16:00 3272

空空如也

空空如也

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

TA关注的人

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