自定义博客皮肤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)
  • 收藏
  • 关注

翻译 IO

IOselect函数用法 阻塞与非阻塞IOpollepollIOselect函数用法 && 阻塞与非阻塞IOselect系统调用是用来让我们的程序监视多个文件句柄的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有一个或多个发生了状态改变。关于文件句柄,其实就是一个整数,我们最熟悉的句柄是0、1、2三个,0是标准输入,1是标准输出,2是标准错误输出。0、1、2是整数表示的,

2016-11-04 15:51:31 754

原创 Android 4.4.4 -Andoird 5.0.0代理(ProxySlector 中select函数)导致的BUG分析

Android 4.4.4 发展到 Andoird 5.0.0 其中 OKhttp 中的一点点变化,导致的一个问题:在使用PRoxySelector 中的select函数返回proxy ,构造proxy如果使用的resolve的方式构造,在而后的网络请求中会经历如下过程:1、host 解析成 InetAddress2、InetAddress反向解析成name3、然后将name正

2015-12-18 14:59:52 1989

原创 Google技术之 mod_Pagespeed 网页优化探索(1)

最近工作关于网络加速,x

2014-11-13 22:13:33 862

原创 C++ 对象构造与析构以及内存布局

主要探讨对象的构造顺序与内存的布局,主要参考来源为《Exceptional C++ Style中文版》文中第十四条 顺序!顺序!根据文中的代码摘录如下,代码中添加了一些调试的信息。#include struct classcomp { bool operator() (const __int64& lhs, const __int64& rhs) const {re

2013-03-25 13:20:42 1116

原创 鸡血面试官之金山网络

有时间写。对stl 容器的理解。详细说说vector的工作流程,map如果实现逆序。static关键字的用处多线程只同步模版函数的调用方式 __stdcall ....接口的使用window 的消息机制机理控件改造多重继承对内存分布的影响,其实就是说c++的对象模型递归的工作原理算法之 全排列说实话没有什么难度,只是最后的题目我理解错了。哎。。。鸡血的思维方式。怎么就会有代沟了

2012-06-11 15:48:24 1748 3

原创 在vs2010 添加Gtest 测试框架X86 到x64 工程建立: 步骤 1. 先编译Gtest源码,生成DEBUG 版本"gtestd.lib"与RELEASE版本"gtest.lib"。此处不明

在vs2010 添加Gtest 测试框架X86 到x64 工程建立:步骤1.      先编译Gtest源码,生成DEBUG 版本"gtestd.lib"与RELEASE版本"gtest.lib"。此处不明之处GOOGLE之。此处变为64位版本的2.      建立测试项目工程,可以在原来的需要测试的solution 下面添加工程3.      选择工程平台 4.      配

2012-05-25 11:25:58 4523

原创 network logon failure unknown username or bad password

系统 :windows 7情况":别人可以登录.我登陆不了结果:用了一下午时间来解决.结论是系统时间错误,害得我差点重装系统.

2012-04-19 16:40:49 2214 1

原创 ListCtrl控件改造

最近接收到的最大的一项开发任务是, 自定义控件。目前已经达到了要求,回头总结一下控件要求:1、按照各种需求排序(按照各种需求)2、某行某列能编辑。编辑控件可能为文本框 可能是组合框3、编辑控件需要控制字符或数字或小数的输入4、编辑控件需要控制字符个数 并提供接口5、表头右键菜单能显示和隐藏列等6、添加给定路径图片7、控件中字体颜色能够提供接口设置剩下的手法明天晚

2012-03-06 20:28:10 652

原创 在父类和子类中定义重载函数 心得

情景: 今天碰到一个问题,父类A写了fun函数,自己重载了很多种形式,然后子类B写了一个fun函数进行重载,然后发现 子类对象访问不到父类的fun函数。直接使用代码说明情况代码如下:#pragma oncetypedef struct STRUCT_INT{ int m_sTemp1; STRUCT_INT() { m_sTemp1=1; }}STRU

2012-02-29 20:38:34 2261

原创 classview 里面什么也么有显示?

http://support.microsoft.com/kb/294704/zh-cn这个文中提到 在 Visual c + + 6.0 版 ClassView 和类视图在 Visual c + +.net 和 Visual c + + 2005年中不显示隐藏的头文件中定义的类的处理方法。以下任何可能导致此问题: 标头的文件扩展名可能不同于产品约定 (.h,例如)。 类视图数据库

2012-02-25 10:37:17 805

原创 关于socket断线处理的两种机制

查阅了很多资料 使用csocket对网络通讯非正常结束的处理 一、当发送数据的时候,检测返回值,或者捕捉到错误,则认为断开。(适用客户端) 二、客户端定时发送消息给服务器,如果隔一段时间没有收到消息,则认为短开。(适用服务器端)

2011-07-03 20:39:37 1493

原创 关于查找已经打开的dailog方法

系统提供方法 FindWindowThe FindWindow function retrieves a handle to the top-level window whose class name and window name match the specified strings. This function does not search child windows. This fu

2011-06-27 20:22:00 545

原创 关于 error LNK2001: unresolved external symbol "public: static class CString 错误处理

错误提示:PropertyPageXiWeiXinXi.obj : error LNK2001: unresolved external symbol "public: static class CString CPropertyPageXiWeiXinXi::m_strstaticfilepath" (?m_strstaticfilepath@CPropertyPageXiWeiXinXi@

2011-06-24 09:45:00 13263 3

原创 关于初始化数组 c++ memset函数。和sizeof的一些说明。

突然要对一个数组初始化以前都是用穷举的方法, for(int i=0;i{ a[i]=**;}现在突然想到用一个方法memset 方法。该方法介绍#include #include void main( void ){ char buffer[] = "This is a test of the memset function"; printf( "

2011-06-23 20:06:00 3003

原创 对话框中获得文档指针pDoc ( 转)

对话框中获得文档指针pDoc For   a   single   document   interface   (SDI)   application,   add   the   following   code   to   your   SDI   documents   implementation   file   for   CMyDoc::GetDoc():        

2011-06-20 08:14:00 777

原创 MoveWindow 时候 ASSERT(::IsWindow(m_hWnd))?

xx.MoveWindow 时候 ASSERT(::IsWindow(m_hWnd))?动态加载一个窗体窗体里面有一些控件。在重载窗体的onsize函数后对控件的大小进行修改。void CPropertyPageXunLianJiankong::OnSize(UINT nType, int cx, int cy) { CPropertyPage::OnSize(nType, cx, cy)

2011-06-17 10:41:00 5097 7

转载 关于explicit,和构造函数一起使用.

<br />explicit,和构造函数一起使用. <br />explicit   constructor指明构造函数只能显示使用,目的是为了防止不必要的隐式转化. <br />举个例子: <br />    有这样一段代码: <br /><br />class   A <br />{ <br />      public: <br />          A(int); <br />      private: <br />          int   num; <br />}; <br /><br

2011-05-15 13:24:00 459

原创 CArchive

<br />CArchive<br /><br />CArchive没有基类。<br />CArchive允许以一个永久二进制(通常为磁盘存储)的形式保存一个对象的复杂网络,它可以在对象被删除时,还能永久保存。可以从永久存储中装载对象,在内存中重新构造它们。使得数据永久保留的过程就叫作“串行化”。<br />可以把一个归档对象看作一种二进制流。象输入/输出流一样,归档与文件有关并允许写缓冲区以及从硬盘读出或读入数据。输入/输出流处理一系列ASCII字符,但是归档文件以一种有效率、精练的格式处理二进制对象。<

2011-04-20 14:07:00 405

原创 DYNAMIC_DOWNCAST

DYNAMIC_DOWNCASTDYNAMIC_DOWNCAST( class, pointer )参数: class 类的名字。 pointer 将要被强制转换为class类对象指针的指针。 说明:DYNAMIC_DOWNCAST宏提供了将一个指针强制转换为指向一个类的对象的指针的简单方式,同时检查这种强制转换是否合法。这个宏将会把pointer参数强制转换为class参数类型的对象指针。如果pointer参数所指向的对象就是class类的对象,这个宏将返回一个适当

2011-04-19 16:43:00 1426

原创 CObject::IsKindOf

<br />CObject::IsKindOf<br /><br />BOOL IsKindOf( const CRuntimeClass* pClass ) const;<br /><br />返回值:如果对象对应于该类,则返回非零值,否则为0。<br /><br />参数: pClass 指向与CObject派生类相关联的CRuntimeClass结构的指针。 <br /><br />说明:<br />检测pClass来查看:(1)对象是否属于指定的类,(2)对象是否属于指定类派生的类。该函数仅仅当类声

2011-04-19 13:43:00 890

原创 DECLARE_DYNCREATE和 IMPLEMENT_DYNAMIC

<br />DECLARE_DYNCREATE<br /><br />DECLARE_DYNCREATE( class_name )<br /><br />参数: class_name 类的实际名字(不用引号括起来)。 <br /><br />说明:<br />使用DECLARE_DYNCREATE宏可以使每个CObject的派生类的对象具有运行时动态创建的能力。框架利用这种能力来动态创建对象,例如,当它在串行化过程中从磁盘读取对象的时候。文档、视和框架类必须支持动态创建,因为框架需要动态地创建它们。<br

2011-04-19 13:22:00 1737

原创 ASSERT 和VERIFY

<br />ASSERT<br /><br />ASSERT( booleanExpression )<br /><br />参数: booleanExpression 指定了一个表达式(包含指针变量),其计算结果为非零值或0。 <br /><br />说明:<br />这个宏计算它的参数。如果结果为0,则输出一个调试信息并退出程序。如果结果为非零值,它什么也不做。<br />诊断信息具有如下形式:<br />assertion failed in file <name> in line <num><br

2011-04-19 13:18:00 506

原创 关于宏DECLARE_DYNCREATE

<br />DECLARE_DYNCREATE( class_name ) <br />  参数: <br />  class_name 类的实际名字(不用引号括起来)。 <br />  说明: <br />  使用DECLARE_DYNCREATE宏可以使每个CObject的派生类的对象具有运行时动态创建的能力。框架利用这种能力来动态创建对象,例如,当它在串行化过程中从磁盘读取对象的时候。文档、视和框架类必须支持动态创建,因为框架需要动态地创建它们。 <br />  在类的.H模块中加入DECLARE_D

2011-04-18 11:15:00 594

转载 堆区(heap)和 栈区(stack)

<br />预备知识—程序的内存分配   <br /><br />一个由c/C++编译的程序占用的内存分为以下几个部分   <br /><br />1、栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。   <br /><br />2、堆区(heap)   —   一般由程序员分配释放,   若程序员不释放,程序结束时可能由OS回收   。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。   <br /><br />3、全局

2011-04-18 09:16:00 478

原创 mfc一方法

<br />((CEdit*)GetItemDlg(IDC_EDIT_EXAMPLE))->ADDSTRING()类似的用法可以通过GetItemDlg访问到该id对应的对象的一些方法和属性。

2011-04-17 19:46:00 517

原创 string和vector

<br />string是支持长度可变的字符串,c++的标准库负责管理与存储字符相关的内存目标满足对字符串的一般应用。<br />必须包含头文件string。<br />在定义和初始化中注意他的一个初始化函数string s(n,‘c’);的意思的将s初始化为字符“c”的n个副本<br />他与字符串字面值和string类型不是同一个类型。<br />getline(,)接收两个参数,输入流对象,接收string对象。遇到换行符号结束输入。<br /> <br />string对象的操作。e.empty()

2011-04-17 19:45:00 445

原创 cout与cerr的区别描述

<br />关于cout与cerr的区别描述:和cout一样,cerr也是一个ostream对象。它们之间的区别在于,操作系统重定向只影响cout,而不影响cerr。cerr对象用于错误消息。因此,如果将程序输出重定向到文件,并且发生了错误,则屏幕上仍然会出现错误消息。在UNIX系统中,可以分别对cout和cerr进行重定向,命令行操作符>用于对cout进行重定向,操作符2>对cerr进行重定向。

2011-04-16 00:27:00 446

原创 关于__stdcall回调的摘录

      代码中,可在函数原型中找到__stdcall,因为它以双下划线打头,所以它是一个特定于编译器的扩展,说到底也就是微软的实现。任何支持开发基于Win32的程序都必须支持这个扩展或其等价物。以__stdcall标识的函数使用了标准调用约定,为什么叫标准约定呢,因为所有的Win32 API(除了个别接受可变参数的除外)都使用它。标准调用约定的函数在它们返回到调用者之前,都会从堆栈中移除掉参数,这也是Pascal的标准约定。但在C/C++中,调用约定是调用者负责清理堆栈,而不是被调用函数;为强制函数使用

2011-04-14 08:49:00 553

空空如也

空空如也

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

TA关注的人

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