自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (10)
  • 收藏
  • 关注

转载 va-start va_arg va_end

va_start和va_end使用详解  本文主要介绍va_start和va_end的使用及原理。  在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end这两个宏,但对它们也只是泛泛的了解。  介绍这两个宏之前先看一下C中传递函数的参数时的用法和原理: 1.在C中,当我们无法列出传递函数的所有实参的类型

2014-10-24 15:46:02 683

转载 ios 底层数据结构

过去的几年中涌现了大量的Objective-C开发者。有些是从动态语言转过来的,比如Ruby或Python,有些是从强类型语言转过来的,如Java或C#,当然也有直接以Objective-C作为入门语言的。也就是说有很大一部分开发者都没有使用Objective-C太长时间。当你接触一门新语言时,更多地会关注基础知识,如语法和特性等。但通常有一些更高级的,更鲜为人知又有强大功能的特性等待你去开拓。

2014-09-25 20:30:34 6615 1

原创 Objective-C底层数据结构

Objective-C底层数据结构Objective-C底层数据结构类的数据结构Class(指针)typedef struct objc_class *Class; /* 这是由编译器为每个类产生的数据结构,这个结构定义了一个类.这个结构是通过编译器在执行时产生,在运行时发送消息时使用.因此,一些成员改变了类型.编译器产生"char* co

2014-09-25 20:21:23 2716

原创 ios性能提升

http://blog.jobbole.com/37984/

2014-04-20 10:19:38 867

原创 SHELLEXECUTEINFO

第一篇 SHELLEXECUTEINFO 和 ShellExecuteEx的使用        使用SHELLEXECUTEINFO和ShellExecuteEx,我也主要是在cab包的安装时使用的。基本上是这样使用的,如下:      SHELLEXECUTEINFO ShellInfo;                  memset(&ShellInfo, 0, si

2013-07-05 11:06:05 1666

原创 directui库和winnt.h中相冲突

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winnt.h和directui库相冲突的解决方案是在winnt.h文件的288行添加#define POINTER_64 __ptr64即可

2013-04-16 14:46:22 884

原创 Interlocked系列函数运用----错误码的返回

Long g_lErrorID = 0;LONG _IN_SetLastError( LONG lError ) { return InterlockedExchange(&g_lErrorID, lError);}LONG _IN_GetLastError() { return g_lErrorID;}

2013-03-06 14:32:00 767

原创 网络编程基础知识

1,在网络编程中必须时刻记住网络编程的概念。   2, 两个ip地址和网络序ip地址的互转函数                        ,3,两个数据值转网络序的函数

2013-03-06 08:59:11 693

转载 SOCKET各种模型下并发数量

SOCKET各种模型下并发数量  今天在公司认真的看了一下SOCKET的编程,对其中一些编程模型的并发数量原来一直是半清不明,正好趁着做当前项目的机会把他理清,目前在SOCKET上的编程模型主要有以下几种(WIN为主,LINUX和UNIX用得较少):1、普通的阻塞和非阻塞编程。利用线程池技术和内存池,SOCKET池技术,基本可以处理一千五百个左右的SOCKET连接,但我们一

2013-03-05 19:05:59 1085

原创 网络通信

2013-03-04 20:08:25 602

转载 线程同步,互斥 事件 和关键代码的比较

2013-03-04 19:25:46 581

原创 动态库中数据可以为多进程共享的方法

如何使一个dll数据值可以为多进程共享?如何使动态数据库中的g_nvalue值为多进程共享呢?实例如下:#pragma data_seg("hookdll")int g_nvalue = 5; //必须要初始化#pragma data_seg()#pragma comment(linker,"/SECTION:hookdll,RWS")     HOOK_API i

2013-03-04 19:12:20 1910

原创 HOOK 钩子编程

所谓钩子函数就是对windows下的如(键盘或鼠标)等消息的过滤处理,通过钩子回调函数来进行截留处理。         一共有两种类型的钩子:局部的和远程的。局部钩子仅钩挂您自己进程的事件。远程的钩子还可以将钩挂其它进程发生的事件。远程的钩子又有两种:钩子分两种, 一种是系统级的全局钩子; 一种是线程级的钩子.全局钩子函数

2013-03-04 19:05:23 955

原创 Windows下数据库访问技术ODBC

ODBC是windows下开发数据互联,它为windows下编写关系型数据库提供了一个统一的接口,由于不同的数据库有不同的API,应用起来比较麻烦,因此为了解决这种问题,特开发了ODBC,ODBC为多种数据库的开发提供了统一的API接口,可以处理不同数据库的客户应用程序,当前比较通用的数据库基本上都提供有ODBC数据库的驱动程序,也就是说数据库只有提供了ODBC驱动程序,才能使用ODBC接口进行开

2013-03-04 18:43:19 1093

转载 C++内存分配—new,malloc,GlobalAlloc详解

C++内存分配秘籍—new,malloc,GlobalAlloc详解                                        C++内存分配秘籍—new,malloc,GlobalAlloc详解                                                   _______只为因内存分配而无法入眠的程序员1.new是标准

2013-03-04 10:54:44 1163

原创 互斥对象

windowsapi windows创建的对象为内核对象,所谓内核对象是由系统统一管理的,如线程,进程创建的信息是由  内核来管理,对内核管理的数据应用程序是无法进程操作的,只能通过API函数来进行间接的操作。 windowsAPI 互斥对象CreateMutex 实现线程间的同步,    如:HANDLE handle = CreateMutex( NULL, FALSE, "d

2013-03-01 17:36:52 701

原创 多进程共享动态链接库的原理

当多个进程共享dll时,其实内存中只保留一份dll代码,而每个进程调用dll的导出函数或类等等时是单独在进程的堆栈上分配空间的,也就是说每个调用dll的进程单独保留自己使用到的数据,各个进程互不影响。所谓的多进程共享其实就在内存中保留dll代码的空间内“做文章”,如多个进程共享一个dll时,使用LoadLibrary和GetProcAddress得到的地址是一样的,也说明内存中保留一份dll,每个

2013-02-28 19:25:41 5986

原创 DLL 的编写,导出函数

//在编程c++dll时 extern "C"和.def的作用 extern "c"是c++编译器在编译函数时以c编译器的方式处理函数名 而.def的作用也是告知编译器以.def导出的文件名的方式编译函数名动态链接库的使用有两种方式,一种是显式调用。一种是隐式调用。(1)       显式调用:使用LoadLibrayr载入动态链接库、使用GetProcAddress获

2013-02-28 14:35:04 19584 1

原创 C++标准库中的排序函数 sort和qsort

void qsort(数组名,数组长度,每个元素的大小,比较函数)其中比较函数 主要是决定是升序还是降序排列例如:int compare(void*a, void*b)#include        {          return *a-*b;       升序排列                 return *b-*a;     降序排列         }

2013-02-22 16:01:55 919

原创 stl中vector和deque的比较

在这篇文章中我们覆盖了多种不同的情况来选择我们到底是该使用vector还是deque。让我们总结一下测试的结果看下面几个结论。当执行大数据量的调用push_back()的时候,记住要调用vector::reserve()。在实验一中我们研究了vector和deque在插入数据的情况。通过这些假设,我们可以看出deque分配的空间是预先分配好的,deque维持一个固定增长率,在vec

2013-02-22 15:45:04 1104

原创 开发框架SSH

框架集合~~SSH对应 strust spring hibernatestruts 采用MVC模式,主要是作用于用户交互spring 才用IOC和AOP~作用比较抽象,是用于项目的松耦合hibernate 是对象持久化框架,其实就是实体类和数据库表建立关系,操作类就会触发相应的sql语句,可以不用写任何sql语句,完成数据库编程

2013-01-29 16:08:29 517

转载 SSH

什么是SSH,SSH有什么好处什么是SSH? 传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式,就是“中间人”冒充真正的服务器接收你

2013-01-29 16:06:00 550

原创 CEdit控件对输入参数的控制,包括右键面板及快捷键的处理

#include "stdafx.h"#include "NumEdit.h"#define VK_CTRL_X          0x18                   #define VK_CTRL_C          0x03#define VK_CTRL_V          0x16// CNumEditIMPLEMENT_DYNAMIC(CNumEdit

2013-01-23 20:04:30 1126

原创 GetFocus

返回现在焦点所在空间的一个句柄原型HWND GetFocus(VOID);只能在当前窗体所在的线程中使用  HWND hWnd = GetForegroundWindow(); if(!IsWindow(hWnd))  return NULL; g_pOldWndProc = (WNDPROC)GetWindowLong(hWnd, GWL_WNDPROC);

2013-01-23 11:33:37 4491

原创 Qt和MFC的比较

MFC(微软基础类库)是专门为windows设计的一个用于开发图形用户界面的类库。MFC或多或少使用了面向对象的方法包装了Win32的API,正因如此,这些API有时是C++,有时是C,甚至是C和C++的混合体。Qt这个C++的图形库由Trolltech在1994年左右开发。它可以运行在Windows,Mac OS X, Unix,还有像Sharp Zaurus这类嵌入式系统中。Qt是

2013-01-22 22:24:06 1560

原创 系统变量和用户变量及其运用

设置过程如下:    我以win7为例,XP也是一样的,叫法不一样而已;   系统变量和用户变量,功能是一样的,只是权限不同罢了,见名知意……   系统变量或者用户变量,名字必须和应用程序的名字一样右击计算机属性——高级系统属性 点环境变量(N)2011-7-30 00:45 上传下载附件(46.1 KB)

2013-01-22 15:39:58 730

转载 MinGw

MinGW简介MinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环  境,它是Minimalist GNU on Windows的略称。这里的“纯粹”是指「使用msvcrt.dll的应用程序」。无法使用MFC (Microsoft Foundation Classes微软基础类库)。注:msvcrt.dll(名称:Microsoft C Runtime L

2013-01-22 14:03:02 744

转载 select和iocp模式

winsock的阻塞和非阻塞通信模型摘要:在应用程序开发中,经常涉及各式各样的机器的交互通信问题。在Windows操作系统下,可以使用MFC中的CSocket,也可以使用以Windows Api为基础的Winsock等等。本文主要描述了Winsock的两种实现方式,即阻塞方式和非阻塞方式。并对应这两种方式,描述了Select模式和IOCP模式。关键字:Winsock Blockin

2013-01-22 10:15:36 5993

原创 UTF-8和ASCII

UTF-8和US-ASCII的区别     UTF-8 包括 US-ASCII 和多字节编码。与普通的多字节编码不同,UTF-8的字节长度不固定,对于ASCII, 字节长度为1, 对于中文,阿拉伯文等,可以是2,3或更多字节,这样能有效节省存储空间. 它还与很多传统编码标准兼容,所以很受欢迎.

2013-01-21 19:18:41 4551

转载 数字签名和数字证书

数字签名是什么?今天,我读到一篇好文章。它用图片通俗易懂地解释了,"数字签名"(digital signature)和"数字证书"(digital certificate)到底是什么。====================================================数字签名是什么?原文网址:http://www.youdzone.com/signa

2013-01-21 16:36:14 2840

原创 多线程,线程创建及关闭句柄存在的问题,终止线程的运行的几个函数

多线程的编程在Win32方式下和MFC类库支持下的原理是一致的,进程的主线程在任何需要的时候都可以创建新的线程。当线程函数执行完任务后,自动中止线程;当进程结束后,所有的线程都中止。在Windows的一个进程内,包含一个或多个线程。线程是指进程的一条执行路径,它包含独立的堆栈和CPU寄存器状态,每个线程共享所有的进程资源,包括打开的文件、信号标识及动态分配的内存等等。一个进程内的所有线程使

2013-01-21 14:28:00 6865

原创 需要研读的书

C++并行与分布式编程  POSIX 表示可移植操作系统接口(Portable Operating System Interface ,缩写为 POSIX 是为了读音更像 UNIX)。电气和电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)最初开发 POSIX 标准,是为了提高 UNIX 环境下应用程序的可移植

2013-01-21 09:31:15 618

原创 GDI+环境配置及运用

一,首先加载gdi+库,目前一般windows系统都有#include #pragma comment(lib,"gdiplus.lib")using namespace Gdiplus;二,在程序加载时(一般在OnInitialDlg或者InitiInstance)ULONG_PTR m_gdiplusToken; GdiplusStartupInput gdiplu

2013-01-18 19:49:35 606

转载 C++派生类构造函数和析构函数调用顺序

++派生类构造函数调用顺序(详解)我们来看下面一段代码:  class B1  {  public:  B1(int i) {cout  };  class B2  {  public:  B2(int j) {cout  };  class B3  {  public:  B3(){cout  };  class C: publ

2013-01-18 16:06:20 840

转载 CObArray的介绍

CObArrayCObArrayCObArray  CObArray  CObject   └CObArray   CObArray类支持CObject指针数组。这些对象数组近似于C中的数组,但不同的是它们可以动态地增减。  数组索引总是开始于位置0。你可以决定是否固定数组上界,或当增加元素超过了当前边界后,是否允许数组扩展。内存分配给数组上界的邻近值,而不管某些元素是否为空。

2013-01-17 10:41:17 6309

转载 CArray类的方法介绍

CArray的用法templateclass CArray:public CObject参数 ARG_TYPE可以不使用其实就是carray类对象内部函数参数的实现为const,在carray类对象声明时可以不指定ARG_TYPE参数TYPE 模板参数指定存储在数组中的对象的类型。TYPE是一个由CArray返回的参数。ARG_TYPE 模板参数指定

2013-01-17 10:34:33 825

原创 MFC的串行序列化的实现

序列化就是存储对象数据,反序列化就是读取保存的对象数据mfc的串行序列化的实现几个必要条件1.类对象必须要直接或间接继承cobject对象2.类中要有默认的构造函数3.类中要有DECLARE_SERIAL( 类名)的声明,类实现的外部要有IMPLEMENT_SERIAL( 类名, 直接继承的类, 1)4.类要继承cobject的虚函数实现virtual void Seriali

2013-01-17 09:57:22 508

原创 debugview + outputdebugstring 调试程序 同时也可以输出调试日志文件

下载一个最新版的debugview调试器outputdebugstring是window下的api函数,支持unicode和ascii编码,可以再debug和release下显示信息outputdebugstring使用包含头文件windowl.h即可,调试程序时若再debugview下显示调试信息,需要关闭其它的调试器。outputdebugstring参数是以\0结束的字符串,若要

2013-01-16 10:10:00 4418

原创 窗口关闭过程,非模态对话框为什么不能使用enddialog关闭窗口

对于模态对话框DoModal出来的,删除对话框时用cdialog::onok()或者cdialog::oncancle(),这些函数调用之后并没有删除对话框,而是设置了操作系统对话框的结束标志,当操作系统检测到这个标志后,就结束该对话框的消息循环,同时也去释放掉对话框里面的资源。若要退出时提示是否要退出,可在onclose()、onok()、oncancel()中做处理,而不能再响应wm_de

2013-01-15 20:27:12 6394

原创 注册窗口类 registerclass

window把窗口以不同的类别进行设计,通过不同的类别来管理不同的资源,体现模块化管理的思想。以mfc为例Button类别有ccheckbox,cbutton,radiobutton等 ,Static类别有cstatic、staticgroup等。 一个应用程序在创建某个类型的窗口前,必须首先注册该“窗口类”(Windows Class)。注意,这里不是C++类的类。Register Wi

2013-01-14 21:16:40 7104

零基础学Qt4编程.pdf

零基础学Qt4编程.pdf

2013-04-16

Windows核心编程(第五版源码)

Windows核心编程(第五版源码),深入学习window编程

2013-01-31

QT4深入浅出讲解

QT4开发技术深入浅出讲解,讲解详细易懂,目前作为qt官方网站的中文版本

2013-01-31

QT入门教程

qt入门教程,qt是开源的跨平台开发的资源库,目前qt版本已达到5.0了

2013-01-31

Windows核心编程第五版

windows核心编程第五版,高清图像,页面清晰,每一个c++程序员必读之书

2013-01-21

c++笔试面试宝典

2012年c++最专业的笔试面试宝典,非常好的面试宝典,好不容易找到的,资源共享下

2012-07-16

c++ OCI.pdf

c++ OCI.pdf

2012-04-06

空空如也

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

TA关注的人

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