曾经沧海

给你波澜不惊的爱情,陪你看世界的风景,许你一世的欢颜。

VC 在多线程中调用Exce问题

1) 每个线程必须先::CoInitialize(NULL);,退出时必须::UnCoInitialize(NULL);, 2) pDlg->m_pXlOper,即线程使用m_pXl内Excel对象,必须遵守COM/COM+规范,简单说,对象接口指针必须遵守一个规范:计数增一,退出时计数减...

2014-01-15 09:10:02

阅读数 715

评论数 0

AfxOleInit()/CoInitialize()/CoInitializeEx()

具体可见msdn开发人员中心: (一)AfxOleInit() 1、函数说明:Initializes OLE support for the application. 2、函数原型: BOOL AFXAPI AfxOleInit( );  Return Val...

2014-01-15 09:05:18

阅读数 885

评论数 0

CoInitialize浅析二

最近工作比较忙,在粗略分析了CoInitialize之后我们一直没有再深入研究,下面言归正传。前面我们初步了解到了CoInitialize其实是通过调用CoInitializeEx来实现功能的,而后者最终调用了wCoInitializeEx函数,如果能进一步了解这个函数的内部实现,那么我们对COM...

2014-01-15 09:01:42

阅读数 478

评论数 0

CoInitialize浅析一

大家都知道程序中若要使用COM组件则必须要先调用CoInitialize,该函数主要是用来初始化COM运行环境。但这个函数的作用域是以线程为单位还是以进程为单位呢?也许大家已经通过测试程序摸索出答案,没错,是以线程为单位。今天我们就稍微再深入一下,通过分析CoInitialize的具体实现来印证我...

2014-01-15 09:00:48

阅读数 711

评论数 0

线程何时释放内核资源

转载自http://hi.baidu.com/wangguang246/blog/item/eb70032817b5f3e599250aaf.html 最终编辑 yaofly 一例子1      if(sClient!=INVALID_SOCKET)    {     hThre...

2014-01-15 08:55:14

阅读数 743

评论数 0

libpng用法,读写PNG图像

//file:pngtest.c //changed from the libpng,对照libpng中源码阅读 //myers #include "png.h" #include #include "zlib.h" #include &quo...

2014-01-03 22:38:24

阅读数 1492

评论数 2

使用libpng显示png图片

libpng是一个跨平台的png解码库,方便易用。我这里不说它怎么移植,基本上如果是支持fopen之类函数的平台都可以支持。其实他的移植非常简单,zlib可能麻烦一点,但相信一般人都能搞定。主要是文件读写和错误处理的试配。 这里只提供一个使用libpng得到文件RGB(A)数据的例子,没加任何的...

2014-01-03 22:37:08

阅读数 884

评论数 0

Zlib函数列表和使用手册

Zlib函数列表 实用函数 int compress (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen); int compress2 (Bytef *dest, uLongf *destLen, cons...

2014-01-03 22:34:20

阅读数 721

评论数 0

AfxBeginThread和CreateThread具体区别

1. 具体说来,CreateThread这个 函数是windows提供给用户的 API函数,是SDK的标准形式,在使用的过程 中要考虑到进程的同步与互斥的关系,进程间的同步互斥等一系列会导致操作系统死锁的因素,用起来比较繁 琐一些,初学的人在用到的时候可能会产生不可预料的错误,建议多使用Afx...

2014-01-03 22:19:55

阅读数 563

评论数 0

VC中回调函数的用法

回调函数,就是由你自己写的。你需要调用另外一个函数,而这个函数的其中一个参数,就 是你的这个回调函数名。这样,系统在必要的时候,就会调用你写的回调函数,这样你就可 以在回调函数里完成你要做的事。     前些天写一个可编辑的ListCtrl类时,遇到这样一个问题,在List...

2014-01-03 13:58:29

阅读数 2652

评论数 0

gbk, gb2312,big5,unicode,utf-8,utf-16的区别

Unicode编码,UCS、UTF、BMP、BOM等名词 这是一篇程序员写给程序员的趣味读物。所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级。整理这篇文章的动机是两个问题: 问题一: 使用Windows记事本的“另存为”,可以在GBK、Unico...

2013-09-25 14:50:30

阅读数 559

评论数 0

回调函数

一,回调函数     我们经常在C++设计时通过使用回调函数可以使有些应用(如定时器事件回调处理、用回调函数记录某操作进度等)变得非常方便和符合逻辑,那么它的内在机制如何呢,怎么定义呢?它和其它函数(比如钩子函数)有何不同呢?     使用回调函数实际上就是在调用某个函数(通常是API函数)时...

2013-09-25 14:46:43

阅读数 587

评论数 0

浅析 Linux 中的时间编程和实现原理一—— Linux 应用层的时间编程

简介: 本文试图完整地描述 Linux 系统中 C 语言编程中的时间问题。主要内容包括应用程序中的时间编程方法;时钟硬件简介;Glibc 时间函数的实现以及 Linux 内核对时间的支持和实现原理。这是第 1 部分,探讨应用开发中的时间编程问题。   引子 我们都生活在时间中,但却无法去思考...

2013-09-15 11:15:18

阅读数 659

评论数 0

MiniGUI源码分析——GDI概览及Surface

GDI(Graphics Device Interface)是对绘图接口的描述,是MiniGUI的核心组成部分之一。 GDI虽然是GUI的基础,但是,它实际上不太适合作为GUI的组成部分之一的。因为GUI的核心功能在用户交互上,而不是如何绘制上。对MiniGUI来说,GDI是成也萧何败萧...

2013-09-12 16:18:56

阅读数 959

评论数 0

MiniGUI源码分析——DC分析

熟悉windows的朋友都了解,GDI对外提供一个HDC的DC句柄。DC为(Device Context)的缩写,表示一个抽象的设备当前绘图情况。 一般情况下,屏幕、打印设备、内存像素都可以抽象出一个HDC句柄。 一个设备可以抽象多个HDC句柄,每个HDC句柄,都有自己独立的上下文信息。 在M...

2013-09-12 15:47:21

阅读数 1494

评论数 0

MiniGUI源码分析——消息概览

这本篇中,将重点介绍MiniGUI的消息。 在MiniGUI中,有以下几种消息: 1. 同步消息,由SendMessage、SendSyncMessage发送的同步消息,消息将被立即处理,消息的返回值将通过函数的返回值返回; 2. Notify消息,通过SendNotifyMessage发送 ...

2013-09-12 15:23:02

阅读数 779

评论数 0

MiniGUI源码分析——主窗口诞生的秘密

上一篇讲到MiniGUI程序的启动过程。当MiniGUI完成了初始化之后,就可以创建一个主窗口。(主窗口是唯一可以作为根窗口的窗口对象。这可能是MiniGUI在当初设计时为了方便而设立的。但是个人认为,这实在是一个蹩脚的设计。应该将主窗口与控件的接口完全统一了,就像windows API那样。) ...

2013-09-12 14:50:25

阅读数 953

评论数 0

MiniGUI源码分析——MiniGUIMain的奥秘

接下来,通过剖析MiniGUI的最简单的例程,来详细说明MiniGUI程序是如何创建和运行的。 这个例程,可以从很多地方得到,凡是接触过MiniGUI的朋友,首先接触的便是这个例子,为了方便大家阅读,贴在下面 /* ** $Id: helloworld.c,v 1.38 2007-10-2...

2013-09-12 14:39:06

阅读数 2449

评论数 0

MiniGUI源码分析——开始篇

MiniGUI即将开源,大家可以关注官方微博 http://weibo.com/fm0minigui  文章中即将提到的很多内容点,主要基于开源版本1.6.10,对应的是即将开源的3.0版本,以前的1.3.0(对应商用的2.0.4版本)的内容差异很小,大家可以对照查阅。 大家可以从ht...

2013-09-12 14:29:54

阅读数 1716

评论数 0

C++程序运行时的异常处理

程序中的错误分为编译时的错误和运行时的错误。编译时的错误主要是语法错误,比如:句尾没有加分号,括号不匹配,关键字错误等,这类错误比较容易修改,因为编译系统会指出错误在第几行,什么错误。而运行时的错误则不容易修改,因为其中的错误是不可预料的,或者可以预料但无法避免的,比如内存空间不够,或者在调用函数...

2013-09-12 10:09:45

阅读数 1860

评论数 0

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