自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Jovi’s Blog

造造轮子,读读好书,钻钻技术,聊聊人生。不安于现状,也享受人生!

  • 博客(28)
  • 资源 (4)
  • 收藏
  • 关注

原创 Cocoa开发——PIPE通讯框架

进程通讯方式有很多种,OSX系统的进程通讯方式更是多种多样,笔者暂时只写过XPC和有名管道通讯的框架,特此记录一下自己的心得。首先基于Pipe有名管道的进程通讯,我们将管道创建,打开,读取,写入等操作封装到CPipeWrapper的类中,方便对管道的一系列操作。class CPipeWrapper{public: CPipeWrapper(); ~CPi

2015-11-11 01:02:42 989 1

原创 如何以Root方式运行Xcode

粗略算一下,在第一次接触OSX的时候,我接触Windows已经有14年,刚开始用OSX和Xcode各种不习惯,但是用Xcode写了一星期的代码,我却有一种想把Windows和VS扔了的感觉(真的用着很舒服!)。最近写Cocoa,需要对磁盘等设备文件进行操作,当然首先我想到的是Windows中的CreateFile这个API,在查询一些资料以后发现,OSX是基于BSD SYSTEM后代,

2015-07-17 23:53:42 2722

原创 C++智能指针的实现

C++智能指针实现(多线程安全)

2015-07-02 01:50:32 768

原创 浅谈Interlocked operations

Interlocked系列的原子操作函数,你了解到什么程度呢?

2015-06-30 17:19:06 963

原创 浅谈线程同步方法性能比较

简要将Win32编程中的四种同步方式的性能作比较,分别有CriticalSection,Semaphore,Mutex,Event。

2015-06-27 00:29:48 784

原创 进程、线程同步互斥学习 —— 事件

进程、线程同步互斥学习 —— 事件以及封装

2015-06-26 21:02:32 413

原创 进程、线程同步互斥学习 —— 互斥器

进程、线程同步互斥学习 —— 互斥器介绍以及封装

2015-06-26 13:34:38 458

原创 进程、线程同步互斥学习 —— 信号量

进程、线程同步互斥学习 —— 信号量 以及 信号量封装

2015-06-25 17:15:45 421

原创 进程、线程同步互斥学习 —— 临界区

进程、线程同步互斥学习 —— 临界区 以及 临界区封装

2015-06-18 18:52:01 554

原创 浅谈指针的偏移

记得当初学习指针的时候,总是把指针和地址混为一谈,总以为说到指针就是指某个地址而已,后来加强对各类指针的认识以后,才认识到指针不止是简单的地址。指针是一种类型,通过类型可以声明一个变量并保存一个内存地址,不同类型的指针对保存的地址会有不同的解释,编译器根据指针的类型(对应的偏移量)解引用出相应的数据。首先在32位程序设计里,指针大小为4bytes,满足2^32 寻址范围。到底偏

2015-06-17 19:02:44 4459

原创 浅析Scanf源码

记得当初从C语言学习开始就使用scanf,关于scanf的用法也略知一二,对使用scanf出现的问题并未进行深刻探究,故笔者打算对scanf实现进行探究。如何找到scanf源码关于VC中的CRT代码在 VS目录下的\VC\crt\src中,我们就先把scanf.c扒出来。int __cdecl scanf ( const char *format,

2015-06-16 19:54:07 13125 1

原创 float的内存布局

我们在代码中常常用到float与double,相比于int等类型,很多人并不知道float与double的存储方式。我对float存储方式做个总结

2015-06-16 17:59:41 786

原创 浅谈大小端存储

最近学习SOCKET,将大小端存储做一个总结:小端(Big-Endian)模式:  内存的低地址存数据的低位,内存的高地址存数据的高位。大端(Little-Endian)模式:内存的低位存数据的高位,内存的高地址存数据的低位。首先我们定义一个unsigned int i = 0x12345678;我们看看内存中的存储即:高内存地址保存高位0x12,依次向低内

2015-06-16 15:10:37 597

原创 __cdecl 与 _stdcall 的栈平衡

各类关于VC的书中都多少写到:1、_stdcall调用约定:函数的参数自右向左通过栈传递,被调用的函数在返回前清理传送参数的内存栈。2、__cdecl是C和C++程序的缺省调用方式。每一个调用它的函数都包含清空堆栈的代码,所以产生的可执行文件大小会比调用_stdcall函数的大。函数采用从右到左的压栈方式。注意:对于可变参数的成员函数,始终使用__cdecl的转换方式。__

2015-06-11 13:52:08 1739 1

原创 MFC六大关键技术之仿真学习笔记(八)

前一节写到,在类关系中我们已经建立了一种消息映射的机制,消息具体是如何在类中传递的,是一个值得我们去研究的问题,待我一一道来。*Command Routing(命令传递)实现消息的纵向流动,我们并不希望消息只呈单线发展,我们更渴望得到的是走访映射表的功能。

2015-06-07 14:16:30 629

原创 MFC六大关键技术之仿真学习笔记(七)

从学习Windows的消息机制学习到MFC的消息映射,这是我最喜欢的一节。在Win32编程中,你回去定义各种消息,在WndProc中通过switch ..case..进行消息的分类处理。带着这种思维走进MFC,你会发现MFC采用一种消息映射表模式来简化消息处理。虽说书上理解起来很简单,关于消息如何在MFC框架中流动,其中原理是什么,这才是我们应该学会的,而不是仅仅学会如何使用。

2015-06-06 23:16:36 777

原创 MFC六大关键技术之仿真学习笔记(六)

下面到了MFC的Persistence(永久保存)机制。无非就是我们想要把对象永久保存下来,方法当然是写入文件中咯,MFC有一套Serialize机制。当然MFC仍提供了2个实现的Macro : DECLARE_SERIAL / IMPLEMENT_SERIAL。

2015-06-06 23:09:43 439

原创 MFC六大关键技术之仿真学习笔记(五)

前面所有的基础,你可以说你觉得云里雾里的,所谓的"类别型录"网到底可以干什么,我们为什么需要花费这么多功夫去构建呢,在这一节我会慢慢道来。       我们希望在程序运行过程中动态生成某种"类别型录"中的对象,如 CWnd 我们可能会有这样的思路:CObject *pClass = CRuntimeClass::CreateObject("CWnd"); 或者 CRuntime

2015-06-06 20:37:57 657

原创 MFC六大关键技术之仿真学习笔记(四)

*IsKindOf(运行时类型识别) 因为有了前面的“类型识别”网,我们可以很方便进行“同宗”路线的追踪,当然我们也可以"对类型识别"网进行遍历,得到所有类型。

2015-06-06 18:08:11 821

原创 C++函数可变参数实现原理探究——以实现printf为例

当我们构建函数时,如果我们希望得到的是不定的参数,那我们应该怎么办呢?下面几个关键的macro上场:#define _ADDRESSOF(v) (&reinterpret_cast(v))typedef char* va_list;#define _INTSIZEOF(n) ((sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) -1))#defi

2015-06-06 00:14:26 557

原创 C语言优先级之计算总结

今天在网上博客上发现一个很好的优先级记忆方法,链接:http://blog.csdn.net/skywalker_leo/article/details/6237222此贴用来积累关于优先级的计算:(1) int x = 7,y =3; 1 ? ++x,++y:--x,--y; std::cout解:根据优先级,实际代码执行是这样的:(1? ++x , +

2015-05-29 06:23:12 643 1

原创 MFC六大关键技术之仿真学习笔记(三)

如果你感觉前面两节一帆风顺的话,或许从第三节开始,你会感觉理解有一点点困难,或许读完整节,你只能MFC说有这么一个东西,但是并不明白这样设计的好处或如何去使用,别急,让我们慢慢来学习它。

2015-05-28 21:46:52 595

原创 MFC六大关键技术之仿真学习笔记(二)

上一节简单学习了关于MFC中简单的层次结构,而MFC程序的初始化过程究竟是怎么样的呢,与普通Win32初始化的联系又在哪呢?        Win32程序通过RegisterClass,CreateWindow,ShowWindow,UpdateWindow实现对程序的初始化,下面我们来看对MFC初始化的仿真。

2015-05-28 16:14:00 813

原创 MFC六大关键技术之仿真学习笔记(一)

相信大多数MFC初学者都有一种这种感觉,MFC的框架如此复杂,宏定义虚函数让你不知所措,和传统的Win32SDK编程相比,MFC确实让你足够头疼,粗略看看你发现找到Winmain和WndProc都不是一件容易的事。《深入浅出MFC》第三章将MFC的关键技术仿真出来,让你领略Application framework的内部机制,当然,这并不是一件容易的事情,从粗读到理解运用,这是一个付出心血的过程。

2015-05-28 11:07:15 1295

原创 浅谈C++结构体的内存对齐

最近在认真学习C++基础,就此对于结构体的内存对齐做个学习笔记

2015-05-24 17:58:15 644

原创 浅谈C++类大小以及内存布局

写代码不自然的都会用到有关Class的内容,现在我来浅谈一下关于Class大小以及内存布局的一些问题。                                                                                                          (1)空类class CEmpty{};//size = 1注

2015-05-23 20:51:27 641

原创 C++实现远程桌面集群软件

由于在学校需要管理很多主机的需要,自己动手写了个3389桌面集群的软件。软件很简单,分别用2种方式实现:(1)快速登入模式: 微软的MsRdpClient ActiveX控件实现(2)远程桌面模式:生成.rdp文件实现

2015-05-21 12:47:36 6695 4

原创 C语言 printf计算顺序和压栈顺序初探

不同编译器产生的结果不同,本文测试环境为VS2013和VC6.                                                                                                                                                              先看以下代码:

2015-05-13 17:28:33 778

《深入浅出MFC》第三章MFC关键技术仿真 vs2013代码

《深入浅出MFC》第三章MFC关键技术仿真 vs2013代码

2015-06-08

远程桌面集群

远程桌面集群软件,MFC实现,实现MSTSCAX和RDP远程两种方式,开发思路在我的博客中有

2015-05-21

中文验证码,选字程序

类似于百度现在的验证码程序,选字。 我用的WINFORM实现的。 可以参考代码,不足请指教!

2013-10-04

日期倒计时软件

UI素材找了很久,框架一般,个人觉得适合新手阅读,老鸟掠过,UI找了很久的

2013-06-04

空空如也

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

TA关注的人

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