liujiayu2的专栏

玩点技术

排序:
默认
按更新时间
按访问量

Boost.Optional 的定义与使用

optional:  optional库使用"容器"语义,包装了"可能产生无效值"的对象,实现了"未初始化"的概念. #include using namespace boost; "无意义"的值:  函数并不总能...

2016-04-14 11:32:42

阅读数:1882

评论数:0

DLL与EXE之间的内存 new 与 delete 上的问题

一个模块一个堆,一个线程一个栈。 dll里malloc的内存,在exe里free会出错。 CRT(C运行时期库)不是使用进程缺省的堆来实现malloc(new中调用malloc)的,而是使用一个全局句柄HANDLE _crtheap来分配内存的。这个_crtheap是在XXXCRTStartUp...

2015-10-09 12:02:54

阅读数:1002

评论数:0

用实例证明dll中new的内存不能在exe中释放

VC中新建一个dll工程,设置使用“多线程调试DLL (/MDd)”。该dll导出以下alloc函数: [cpp] view plaincopy __declspec( dllexport )   int* alloc()   {      printf("in dl...

2015-09-07 09:18:00

阅读数:580

评论数:0

AfxInitExtensionModule和AfxTermExtensionModule

一个很好的API查询网站 www.apihome.cn AfxInitExtensionModule BOOL AFXAPI AfxInitExtensionModule( AFX_EXTENSION_MODULE& state, HMODULE hModule ); 返回值...

2015-08-18 16:35:08

阅读数:864

评论数:0

DLL简介

在Windows世界中,有无数块活动的大陆,它们都有一个共同的名字——动态链接库。现在就让我们走进这些神奇的活动大陆,找出它们隐藏已久的秘密吧!    初窥门径:Windows的基石    随便打开一个系统目录,一眼望去就能看到很多扩展名DLL的文件,这些就是经常说的“动态链接库”,D...

2015-05-21 14:29:44

阅读数:416

评论数:0

DLL入门浅析(5)——使用DLL在进程间共享数据

在Win16环境中,DLL的全局数据对每个载入它的进程来说都是相同的,因为所有的进程用的都收同一块地址空间;而在Win32环境中,情况却发生了变化,每个进程都有了它自己的地址空间,DLL函数中的代码所创建的任何对象(包括变量)都归调用它的进程所有。当进程在载入DLL时,操作系统自动把DLL地址映射...

2015-05-20 10:10:07

阅读数:371

评论数:0

DLL入门浅析(4)——从DLL中导出类

前面介绍了怎么从DLL中导出函数和变量,实际上导出类的方法也是大同小异,废话就不多说了,下面给个简单例子示范一下,也就不多做解释了。 DLL头文件: #ifndef _DLL_SAMPLE_H #define _DLL_SAMPLE_H // 通过宏来控制是导入还是导出 #i...

2015-05-20 10:06:38

阅读数:562

评论数:0

DLL入门浅析(3)——从DLL中导出变量

前面介绍了怎么从DLL中导出函数,下面我们来看一下如何从DLL中导出变量来。    声明为导出变量时,同样有两种方法:    第一种是用__declspec进行导出声明 #ifndef _DLL_SAMPLE_H #define _DLL_SAMPLE_H // 如果定义了C++编译...

2015-05-20 10:05:25

阅读数:340

评论数:0

DLL入门浅析(2)——如何使用DLL

上文我简单的介绍了如何建立一个简单DLL,下面再我简单的介绍一下如何使用一个DLL。当一个DLL被生成后,它创建了一个.dll文件和一个.lib文件;这两个都是你需要的。要使用DLL,就需要载入这个DLL。 隐式链接 这里有两个方法来载入一个DLL;一个方法是捷径另一个则相比要复杂些。捷径...

2015-05-20 10:02:30

阅读数:377

评论数:0

DLL入门浅析(1)——如何建立DLL

初学DLL,结合教程,总结一下自己的所得,希望对DLL初学者们有所帮助。    动态链接库(DLL)是从C语言函数库和Pascal库单元的概念发展而来的。所有的C语言标准库函数都存放在某一函数库中。在链接应用程序的过程中,链接器从库文件中拷贝程序调用的函数代码,并把这些函数代码添加到可执行文...

2015-05-20 09:42:13

阅读数:340

评论数:0

编写DLL所学所思(2)——导出类

一、导出类的简单方式 这种方式是比较简单的,同时也是不建议采用的不合适方式。 只需要在导出类加上__declspec(dllexport),就可以实现导出类。对象空间还是在使用者的模块里,dll只提供类中的函数代码。不足的地方是:使用者需要知道整个类的实现,包括基类、类中成员对象,也就是说所有...

2015-05-19 18:28:18

阅读数:419

评论数:0

COM编程之五 动静态链接

【1】静态链接 静态链接是指由链接器在链接时将库的内容加入到可执行程序中的做法。 链接器是一个独立程序,将一个或多个库或目标文件(先前由编译器或汇编器生成)链接到一块生成可执行程序。 函数和数据被编译进一个二进制文件(通常扩展名为.LIB)。 在使用静态库的情况下,在编译链接可执行文件时,...

2015-04-16 18:34:34

阅读数:329

评论数:0

COM编程之四 引用计数

【1】客户为什么不应直接控制组件的生命期? 假设一个组件A正在使用另一个组件B,可想组件A(客户)代码中肯定有若干个指向组件B接口的指针。 那么这种情况下,当使用完一个接口而仍然在使用另一个接口时,是不能将组件释放掉的。 而且很难知道两个接口指针是否指向同一组件,因此决定何时可以安全的释放一...

2015-04-16 18:32:17

阅读数:423

评论数:0

COM编程之二 接口

【1】接口 DLL的接口是它所输出的那些函数。 C++类的接口是该类的一个成员函数集。 COM接口是包含一个函数指针数组的内存结构。 每一个数组元素包含的是一个由组件所实现的函数的地址。 在COM中接口就是一切。对于客户而言,一个组件就是一个接口集。 客户只能通过接口才能同COM组件打...

2015-04-16 18:30:28

阅读数:448

评论数:0

COM编程之三 QueryInterface

【1】IUnknown接口 客户同组件交互都是通过接口完成的。 在客户查询组件的其它接口时,也是通过接口完成的。而那个接口就是IUnknown。 IUnknown接口的定义包含在Win32SDK中的UNKNEN.h头文件中。引用如下: 1 interface IUnknown 2 { ...

2015-04-16 18:30:15

阅读数:409

评论数:0

COM编程之一 组件

【1】组件产生的背景 一个应用程序通常是由单个二进制文件组成的。 当应用程序版本发布后一般不会发生任何变化,对于操作系统、硬件以及客户需求的改变都必须要等到修复源代码后且整个应用程序被重新编译才可处理。 很显然这种状况极不理想。矛盾总是推动事物向前发展的源动力。 当人们认识到应用程序在发行...

2015-04-16 18:29:36

阅读数:569

评论数:0

COM编程概述

所谓COM,英文为Componet Object Model,中文为组件对象模型(其实这种解释只有在考试卷上才具有一点实际意义)。 【1】为什么需要COM? COM是为了解决OLE问题而产生的。COM与OLE的关系类似于微积分与物理的问题。 实际上牛顿当年就是为了解决物理中的机械及动力学问题...

2015-04-16 18:28:46

阅读数:342

评论数:0

QueryInterface的本质初探

转载请注明出处,版权归作者所有  lyzaily@126.com yanzhong.lee    本文写给COM的初学者! QueryInterface接口对COM的重要性不言而喻,该接口的实现有个规则——由QueryInterface返回的IUnknow接口...

2015-04-16 18:27:03

阅读数:405

评论数:0

C++ COM编程之QueryInterface函数(一)

前言 组件对外公布的是接口;一个组件可以实现多个接口,也就是说可以对外公布多个接口,之前也总结过了,你很少会100%的去完全了解一个组件的所有接口,就像你去学习编程一样,你几乎不可能去成为编程中的全才。那么,既然我们不能去完全的了解一个组件提供的所有接口,那么我们在实际开发中,如何去判断一个...

2015-04-16 16:25:58

阅读数:612

评论数:0

C++ COM编程之QueryInterface函数(二)

前言 在COM编程——认识组件中也总结了,COM是一个说明如何建立可动态互变组件的规范,它提供了为保证能够互操作,客户和组件应遵循的一些标准。而在实现和使用QueryInterface时,就需要去遵守一些规则,只有遵守了这些规则,才能是一个正确的COM组件;只有了解了这些规则,才能会真正的了...

2015-04-16 16:25:21

阅读数:406

评论数:0

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