- 博客(21)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
转载 数据预读对ReadFile顺序读取的影响
最近在做performance的测试工具,遇到一个问题就是 "ReadFile"之后得到的timediff时间总是0.咨询了一下大牛,大牛说,那是 是受数据预读的影响,因为我是16k顺序读取....所以,非常快。网上查询了一个数据预读...orz.....好吧,太专业了,太底层了,我看不懂啊....解决方案是,随机读取....下面是借鉴的:随着处理器制造工艺
2014-11-14 13:49:16 2019
原创 指针的使用和练习 I - 如何通过指针访问的使用对象里的private信息
指针 #include "stdafx.h"#include #include class testclass{public: testclass(); ~testclass(); virtual int add2num(int a, int b);private: virtual int WINAPI pri_add2num(int a,
2014-11-12 14:29:40 370
转载 IDispatch接口 - Part III - Dual和Custom
当用ATL向导来创建一个接口的时候,向导会让我们选择Dual或者Custom.那么它们到底有什么分别呢?Dual鼠标移上去,其实是有个说明的。下面的截图没有显示后面的一些文字,实际意思是说这个接口同时支持IDispatch方式和vtable方式,这大概也就是双接口(Dual)名字的来源。vtable调用方式,指的是直接通过接口指针的虚函数表。比如[html]
2014-11-07 12:19:42 512
转载 IDispatch接口 - Part IV - 跨语言调用
当一个COM接口支持IDispatch的时候(Dual接口),它就可以被其他语言调用。这里我用perl试了一下。perl测试代码[html] view plaincopyprint?use warnings; use strict; use Win32::OLE; use constant ADS_UF_ACCOUNTDISABLE => 2;
2014-11-07 12:19:38 428
转载 IDispatch接口 - Part II -CComDispatchDriver智能指针
前面一篇文章讲述了怎么样通过GetIDsOfNames和Invoke来调用一个支持Idispach的COM组件。看起来好像很麻烦,实际上,COM已经提供了一个专门的智能指针来解决这个问题。CComDispatchDriver看一下它的定义,实际上它就是一个特殊的CComQIPtr。[cpp] view plaincopyprint?typedef C
2014-11-07 12:18:05 1144
转载 IDispatch接口 - Part I - GetIDsOfNames和Invoke
IDispatch接口是COM自动化的核心。其实,IDispatch这个接口本身也很简单,只有4个方法:[cpp] view plaincopyprint?IDispatch : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(
2014-11-07 12:17:14 1235
转载 COM线程模型 - Part VI - COM服务端(STA组件)创建线程
From: http://blog.csdn.net/zj510/article/details/39290061 当我们在COM组件内部创建线程的时候,又是怎么样的一种情况呢?这个地方跟组件的具体类型有关了,先来看看STA组件的情况。STA组件内部创建线程先看一段代码,CMyCarEx是一个STA组件,我们在Run()函数里面起了1000个线程。每个线程就会把m_nMil
2014-11-07 12:15:13 653
转载 COM连接点 - Part V - CComDynamicUnkArray::Add问题
From : http://blog.csdn.net/zj510/article/details/39178003 无意中发现一个有趣的问题,连接点中用于保存接收器对象的容器CComDynamicUnkArray有一些小问题。calloc和_recalloc的参数传递问题首先看一下连接点的声明:[cpp] view plaincopyprint?
2014-11-07 12:14:04 639
转载 COM连接点 - Part IV - IDL里面一定需要增加新的事件吗?
From: http://blog.csdn.net/zj510/article/details/39080699
2014-11-07 12:13:50 565
转载 COM连接点 - Part III - 一个COM接口实现多个连接点
From: http://blog.csdn.net/zj510/article/details/39080353
2014-11-07 12:11:25 1314
转载 COM连接点 - Part II - 最简单的例子 (1)
From: http://blog.csdn.net/zj510/article/details/39056097 连接点,connection point,在COM里面也是挺重要的。简单讲,COM里面的连接点就好像是C语言的回调函数,只不过它是基于面向对象实现的。连接点的作用也就是COM对象将一些事件通知客户(调用者)。先来做一个简单的连接点例子吧,之后再慢慢探讨。用
2014-11-07 12:09:50 2293 1
转载 COM连接点 - Part I - 基本原理
From: http://blog.csdn.net/zj510/article/details/39079221 这次我们来看一下连接点的基本工作原理。画了一个简单的图:从上面的图,大概也可以看到基本结构了。如果一个COM对象要支持连接点的话,那么这个对象类一定要从IConnectionPointImpl继承下来。通常,会有一个proxy类,上图中的CProxy_IMyCar
2014-11-07 12:08:42 2094
转载 COM线程模型 - MTA接口 - Part IV - (运行线程)
From : 一个STA对象只能属于一个STA套间,那么一个STA对象一定是在一个线程里面运行的。所以STA对象不需要考虑并发,因为它永远是串行运行的。那么一个MTA对象在哪个线程里面运行的?MTA套间调用MTA对象看下面这段代码:[cpp] view plaincopyprint?// TestCom.cpp : Defines th
2014-11-07 11:29:29 544
转载 COM线程模型 - MTA接口 - Part III -(STA套间调用MTA对象)
From : http://blog.csdn.net/zj510/article/details/39008107 那么如果在STA套间里面创建MTA对象,又如何?看这段代码:[cpp] view plaincopyprint?// TestCom.cpp : Defines the entry point for the console appl
2014-11-07 11:28:38 808
转载 COM线程模型 - MTA接口 - Part II - (传递MTA COM对象给STA套间线程)
接上篇,能否把一个MTA套间里面创建的COM对象传递个STA套间呢?看MSDN上的说明:A client or server that supports both single-threaded and multithreaded apartments will have one multithreaded apartment, containing all threads initializ
2014-11-07 11:26:21 722
转载 COM线程模型 - MTA接口 - Part I
From: http://blog.csdn.net/zj510/article/details/38857239 除了STA之外,COM组件的另外一种非常重要的模型就是MTA.有关MTA,先阅读MSDN, http://msdn.microsoft.com/en-us/library/windows/desktop/ms693421(v=vs.85).aspx需要仔细阅读。罗
2014-11-07 11:24:14 745
转载 COM线程模型 - STA接口 - Part III (MTA客户,跨线程传递COM对象)
From: http://blog.csdn.net/zj510/article/details/38852619
2014-11-07 11:19:32 530
转载 COM线程模型 - STA接口 - Part II -(跨线程传递对象,消息循环)
From : http://blog.csdn.net/zj510/article/details/38829069
2014-11-07 11:17:12 651
转载 COM线程模型 - STA - Part I
From : http://blog.csdn.net/zj510/article/details/38824353 COM里面的线程模型应该是COM里面比较困难的一部分了,我自己也是花了很多时间,而且也还不是很懂。最近又重新看了一下线程模型,为了加深自己的学习,特地写下这篇文章。MSDN上有很多信息,比如http://msdn.microsoft.com/en-us/libr
2014-11-07 11:16:03 835
转载 CreateFileMapping用法
CreateFileMapping用法 CreateFileMapping的MSDN翻译和使用心得 测试创建和打开文件映射的时候老是得到"句柄无效"的错误, 仔细看了MSDN以后才发觉是函数认识不透, 这里把相关的解释翻译出来HANDLE CreateFileMapping( HANDLE hFile, //物理文
2014-11-07 11:12:20 1051
转载 FileMapping
FileMapping 与虚拟内存一样,内存映射文件可以用来保留一个地址空间的区域,并将物理存储器提交给该区域。它们之间的差别是,物理存储器来自一个已经位于磁盘上的文件,而不是系统的页文件。一旦该文件被映射,就可以访问它,就像整个文件已经加载内存一样。内存映射文件可以用于3个不同的目的:• 系统使用内存映射文件,以便加载和执行. e x e和D L
2014-11-07 10:07:36 7382
objc_msgSend 如何正确传递整数以及文本信息?
2016-07-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人