自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (7)
  • 收藏
  • 关注

原创 浅析shared_ptr的enable_shared_from_this

浅析shared_ptr的enable_shared_from_this背景解决方法原理背景考虑以下场景,当一个对象被shared_ptr托管时,怎么从自身返回一个shared_ptr对象struct A{public: std::shared_ptr<A> GetSharedPtrFromThis() { return std::shared_ptr<A>(this); }};class B{public: void SetCallback(cons

2022-02-18 11:59:14 630

转载 WIN32界面开发之三:DUI雏形开发(二)

前言:上篇《WIN32界面开发之三:DUI雏形开发(一)》讲解了界面加载框架的创建,但我们的这些控件并没有起到控件的作用,现在还无法响应我们的点击事件和其它事件,所以我们先给我们的框架添加上EVENT事件机制,然后我们再讲解,为什么我们还要加上NOTIFY通知机制,以及如何添加NOTIFY机制。一、添加EVENT事件机制基本思想:以通知某个按钮LButtonDown为例,我们首

2014-04-17 17:15:57 1030

转载 WIN32界面开发之三:DUI雏形开发(一)

目录(?)[-]正文一CDialogBuilder的构建二控件与容器的构建三窗体创建前言:这部分涉及工程比较大,所以我打算分开为两篇来写,第一篇完成基本框架的构建,第二篇添加上EVENT和NOTIFY机制。完成目标:仿照DirectUI,完成一个基本雏形,开发一个布局控件(Dialog),和一个按钮控件(Button),通过XML来布局窗体,最后按钮响应

2014-04-17 17:00:38 1100

原创 深入解析ATL第六章笔记

1:多重继承之传递夹层由于C++的语法不能在派生类中区分来自不同基类,但原型一致的方法,所以类似的代码是不合法的class CAcePowerll:public ICowBoy, public IArtist{ STDMETHODIMP ICowBoy::Draw(); STDMETHODIMP IAartist::Draw();};若要在com类中实现来自不同接口

2013-12-24 23:28:51 987

原创 深入解析ATL第四章笔记

class ATL_NO_VTABLE CFun : public CComObjectRootEx,public CComCoClass,public IFun1:CComObjectRootBase提供了实现IUnknow的辅助函数,CComObjectRootEx从CComObjectRooBase派生并提供线程安全相关功能,IFun是自定义接口,CComCoClass定

2013-12-14 11:57:59 1353

原创 浅析ATL中类厂的创建及其IUnkown接口的获取

先贴2个很重要的数据结构:对象映射表和接口映射表struct _ATL_OBJMAP_ENTRY {     const CLSID* pclsid;     HRESULT (WINAPI *pfnUpdateRegistry)(BOOL bRegister);     _ATL_CREATORFUNC* pfnGetClassObject; //创建类厂的函数指针 

2013-12-07 16:29:52 2277

转载 ATL中CComobject相关类

1、CComObject :为独立激活的COM组件提供服务,功能包涵:  (1)锁服务器。  (2)正常的引用计数。  (3)正常的QueryInterface。2、CComAggObject :为被聚合激活的COM组件提供服务,功能包涵:  (1)锁服务器。  (2)包容接口实际类。  (3)正常的引用计数。  (4)将调用转发给内

2013-12-07 15:26:13 936

原创 __declspec(novtable)以及虚函数调用

MSDN上描述如下This is a __declspec extended attribute. This form of __declspec can be applied to any class declaration, but should only be applied to pure interface classes, that is, classes that wil

2013-11-21 16:47:16 989

原创 四月日志

memcpy,如果牵涉到文件映射,应检测dest buf的属性,如果是read_only则会被中断http://blog.csdn.net/yeming81/article/details/2046193

2012-04-09 16:53:03 765

转载 windbg检测句柄泄露(可定位到具体代码)

1、用c++写一个句柄泄露的样例程序:#include "stdafx.h"#include voidfun1(void);voidfun2(void);voidfun3(void);voidfun4(void);intmain(intargc, char* argv[]){while(1){fun1();fu

2012-04-09 16:42:21 3578 1

原创 3月日志

2012-03-09一个工作线程,如果在内部调用了GetMessage或者CreateWindow等函数,就变成了一个UI线程。在一个线程内部,是不能用Waitforsingleobject等待这个线程句柄的MFC多线程有个很严重的限制问题,MFC各对象(CWnd,CPen,CDC等等)和win32间的映射都存储在线程的TLS中,传递线程参数时,应传句柄而不是指针 2012-0

2012-03-09 10:48:59 856 1

原创 Webbrowse取消默认文件替换功能,并获取拖放文件路径列表

#include "StdAfx.h"#pragma once#include "oleidl.h"class IDropTargetImpl : public IDropTarget{public: IDropTargetImpl(void) { m_def=0; } ~IDropTargetImpl(void) { } HRESUL

2011-12-27 15:21:54 1123

转载 父窗口和窗口拥有者的区别

一、概念和区别     在windows系统中,每个窗口对象都对应有一个数据结构,形成一个list链表。系统的窗口管理器通过这个list来获取窗口信息和管理每个窗口。这个数据结构中有四个数据用来构建list,即child、sibling、parent、owner四个域。    所以我们可以看到,窗口之间的关系有两种:owner-owned 关系和 parent-child关系。前者称之为拥

2011-11-14 10:51:54 6220 1

转载 C++枚举

枚举类型是被当作常量来看待的。C和C++里面常量不太一样:1、 C里面常量就和普通变量没什么两样,都是在栈里面,而且是可寻址的(也就是除了不能更改以外和普通变量没有区别)   2、而C++里面的常量在编译的时候被放入符号表里面,如果没有显式要求,其将是不可寻址的访问类中的枚举元素:类名 : : 枚举元素名例如:class FileAcess{public:

2011-11-01 14:39:42 4080

原创 VC动态改变控件的TAB顺序

如果控件不是动态创建的,在资源模板里ctrl+d就能解决,如果是动态创建的方法有2。1:SetwindowPos,比如有2个CEdit,m_editAcc和m_editPass::SetWindowPos(m_editAcc.GetSafeHwnd(),HWND_TOP,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE ); ::SetWindowPos(m_editPa

2011-10-31 13:47:30 3266

转载 C++对象布局

今天在网上看到了一篇写得非常好的文章,是有关c++类继承内存布局的。看了之后获益良多,现在转在我自己的博客里面,作为以后复习之用。——谈VC++对象模型(美)简.格雷程化    译 译者前言 一个C++程序员,想要进一步提升技术水平的话,应该多了解一些语言的语意细节。对于使用VC++的程序员来说,还应该了解一些VC++对于C++的诠释。 Inside the C++ Obj

2011-10-31 12:52:37 1450

转载 对话框创建和销毁

非模态对话框相对于模态对话框,他的创建和销毁过程和模态对话框有一定的区别 先看一下MSDN的原文:When   you   implement   a   modeless   dialog   box,   always   override   the   OnCancel   member   function   and   call   DestroyWindow   f

2011-10-24 15:38:16 849

转载 C++获取文件大小

#include  iostream> #include  io.h> #include  sys\stat.h> #include  afx.h> #define _AFXDLL  using namespace std;  void main()  {  // 此文件在工程打

2011-09-27 17:27:10 23636

原创 关闭显示器

::SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MONITORPOWER,2);//关闭 ::Sleep(500); ::SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MONITORPO

2011-09-15 22:44:40 773

原创 INI文件

遍历INI文件下某个section(最简单的配置): WritePrivateProfileStringA("test","ID","12341679","D:\\test1.ini"); char szBuffer[1024] = {0}; DWORD nLengt

2011-08-31 08:46:53 444

转载 前置声明与#include

首先,我们为什么要包括头文件?问题的回答很简单,通常是我们需要获得某个类型的定义(definition)。那么接下来的问题就是,在什么情况下我们才需要类型的定义,在什么情况下我们只需要声明就足够了?问题的回答是当我们需要知道这个类型的大小或者需要知道它的函数签名的时候,我们就需要

2011-08-18 23:51:56 691

原创 日志

............ HRESULT hr; IDispatch *pDisp = GetHtmlDocument(); IHTMLDocument2 *pDocument = NULL; IHTMLElement* pEl; IHTMLBodyElement * pBodyEl; hr = pDisp->QueryInterface(IID

2011-08-03 16:16:48 1001

原创 使用CToolTipCtr提示信息l

1:创建对象   CToolTipCtrl  m_toolTip;   EnableToolTips(TRUE);   m_toolTip.Create(this);   m_toolTip.Activate(TRUE);2:注册,以一个按钮为例 CButton *pButton

2011-07-27 17:25:34 1047

转载 WM消息及其lParam和wParam参数定义

1. WM_PAINT消息,LOWORD(lParam)是客户区的宽,HIWORD(lParam)是客户区的高2. 滚动条WM_VSCROLL或WM_HSCROLL消息,LOWORD(wParam)指出了鼠标对滚动条的操作。比如上、下、左、右、翻页、移动等。3. 击键消息,有WM

2011-07-22 11:15:29 4874

仿QQ截屏...

根据以前vckbase上一个截图改的,改的比较烂凑合着看吧

2012-11-10

谷歌C++编程风格指南中文版pdf

谷歌C++编码规范中文版pdf,谁看谁知道

2011-06-13

右下角模拟QQ消息弹出

右下角模拟QQ消息弹出,首次弹出后每隔10秒再弹次 比较粗糙,纯属无聊

2010-07-19

实现对话框的控件拖放

对着别人给的方法做的,就是想看看有什么效果,呵呵,还算成功,右键实现拖动控件

2010-07-12

PB实现的最简单的图书管理系统

非常粗糙,功能简单,powerbuilder做的

2010-06-18

07年5月软件设计真题

07年5月软件设计真题07年5月软件设计真题07年5月软件设计真题

2009-10-20

07年5月软件设计真题

07年5月软件设计真题,包括答案,上午试题下午试题

2009-10-20

空空如也

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

TA关注的人

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