
COM/DCOM篇
文章平均质量分 95
gaoxiaowei
希音不闻,进即是退,大器晚成。任何程序都有漏洞
展开
-
CoCreateInstance讲解
<br /><br /> 函数功能描述:用指定的类标识符创建一个Com对象,用指定的类标识符创建一个未初始化的对象。当在本机中只创建一个对象时,可以调用CoCreateInstance;在远程系统中创建一个对象时,可以调用CoCreateInstanceEx;创建多个同一CLSID的对象时, 可以参考 CoGetClassObject 函数。<br /> 函数原形:<br /> STDAPI CoCreateInstance(<br /> REFCLSID rclsid, //创建的Com对象的类原创 2010-06-29 13:52:00 · 4692 阅读 · 0 评论 -
Makefile文件
<br />Makefile文件<br /><br />Makefile<br /><br />一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。<br />makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开转载 2010-06-29 14:36:00 · 1133 阅读 · 0 评论 -
进程外服务器的代理存根DLL的创建
<br />进程外服务器的代理存根DLL的创建<br /><br /><br />源代码下载<br />http://download.youkuaiyun.com/source/1792728<br /><br />源自于一位网友的提问<br />http://topic.youkuaiyun.com/u/20091101/20/10b3651a-7494-44fb-9861-fb2d3c5134d7.html?72825<br />问题描述 : 客户端调用进程外组件接口时,由于要获取的不是缺省的接口(IUnknown,IDis转载 2010-06-29 14:34:00 · 1577 阅读 · 0 评论 -
vc中使用nmake命令编译方法
<br /> 由于最近工程较多,在SI的时候很是麻烦,将所有的工程都编译一次,再将可执行文件和生成的库文件全部拷贝到bin目录下,真的做了一次以后就感觉工作量的巨大,可能也是人比较懒的原因,以前就听说过vc可以用命令行编译于是上网狂搜,终于做了一个p处理,以后省事了,只要不改依存逻辑,以后就一键SI了,哈哈。啊,差点忘了说了,介绍一个我的方法,nmake命令就不多解释了,打-?里面解释都有。<br /> vc6.0其实已经不再使用makefile文件进行编译了,但是它仍然可以导出make转载 2010-06-29 14:37:00 · 1452 阅读 · 0 评论 -
COM线程模型汇总
<br />在这一部分我将讲解COM提出的各个类型的线程模型,并说明COM运行时期库是如何实现它们的。<br />本文讲解COM提出的各个类型的线程模型,再说明COM运行时期库是如何实现它们的.<br />线程模型是一种数学模型,专门针对多线程编程而提供的算法,但也仅是算法,不是实现。本文讲解COM提出的各个类型的线程模型,再说明COM运行时期库是如何实现它们的,就像说明Windows是如何实现线程这个数学模型的一样,最后指明一下跨套间调用和各种类型套间编写的要求以帮助理解。希望读者对于Windows操作系转载 2010-06-29 14:15:00 · 583 阅读 · 0 评论 -
INFO:OLE 线程模型的说明和工作方式
<br />转载地址:http://support.microsoft.com/kb/q150777/<br /> COM 对象可以用于一个进程的多线程。“单线程单元” (STA) 和“多线程单元” (MTA) 术语用于为描述对象与线程间的关系、对象间的并行关系、使用何种方法将调用传递给对象的方式以及在线程间传递接口指针的规则而建立的概念框架。组件及其客户可以在 COM 目前支持的以下两个单元模型之间进行选择: <br /><br />单线程单元模型 (STA):进程中一个或多个线程使用 COM ,并且 C转载 2010-06-29 14:28:00 · 622 阅读 · 0 评论 -
VC中调用远程dll组件
<br />DCOM应该不能是DLL,如果组件是DLL,建议使用MTS或COM+,将DLL注册进MTS或COM+,在利用它们导出组件(会有一个注册你这个DLL的安装程序),拿那个安装程序在远程机器(客户机)上运行一下,接下来这个组件就可以被看作在本机上了。原创 2010-06-29 14:19:00 · 1166 阅读 · 0 评论 -
DCOM和COM的不同
<br />问题:DCOM和COM有什么不同?如何去搭建DCOM的框架?<br />简单理解:<br />DCOM是exe文件格式的,是进程外的组件 <br />COM是dll文件格式的,是进程内的组件 <br />使用ATL的时候选择service选项就可以建立DCOM组件 <br />其它和是用COM是一样的<br /> <br />其实DCOM和COM在编程方面区别不大,microsoft说COM是DCOM的无缝扩展,也有一定的道理,但对比COM,DCOM内部实现细节有很大的区别。 <br /><br原创 2010-06-29 14:18:00 · 1404 阅读 · 0 评论 -
微软在线文档之 ATL 自定义控件的制作
转载地址:http://hi.baidu.com/mizzletown/blog/item/fdc4a39b1075bbb1c8eaf420.html使用ATL,可以创建高效、灵活、轻量级的控件,本教程会指导你创建控件并验证一些ATL基本原理。<br />本教程通过七个步骤创建ATL控件,绘制一个圆和圆内的填充多边形。我们可以向工程中添加一个控件,设置Sides属性指明多边形的边数,然后添加绘制代码在属性变化时显示控件,此外我们还可以使控件响应click事件、向控件添加一个属性页、将控件置于一个网页上。<b转载 2010-06-29 14:12:00 · 2491 阅读 · 0 评论 -
COM线程模型1
<br />COM中有下面一些使用规则。。 <br />1,从一个线程调用Coinitliaze开始,到CoUninitliaze结束,这段区域称为套间(appartment)。 <br />COM对象接口必须在套间内创建和使用。 <br />2,接口指针不能跨套间使用,也就是说,在A套间创建的接口指针不能在B套间使用。 <br />3,A套间创建的接口指针可以Marshal--》UnMarshal 在B套间生成一个新的接口指针,然后B 套间可以用它。 <br />4,跨套间有几种情况:跨线程,跨进程,远程转载 2010-06-29 14:03:00 · 617 阅读 · 0 评论 -
关于什么时候使用CoTaskMemAlloc/CoTaskMemFree来申请/释放内存
<br />从网上看来的说法:<br />The thing is that COM (actually the RPC runtime library, but it's easier to blame COM) has an additional requirement for [out] pointers. This requirement is that if the type of an [out] parameter isn't a scalar quantity (in other word翻译 2010-06-29 14:26:00 · 3719 阅读 · 1 评论 -
C++和C#编写调用COM组件
<br /> <br />C++和C#编写调用COM组件源代码下载<br /><br /><br />摘要:现在COM组件的使用越来越广泛,在各个程序中调用COM组件我想大家都遇到过,这篇文章就是关于COM组件的编写和调用的,主要包含了使用VC6.0编写和调用COM组件,VS2005中使用C#编写和调用COM组件,以及在VC6.0和VS2005之间互相调用COM组件。<br /><br />关键字:VC6.0编写调用COM VS2005中C#编写和调用COM VC6.0和VS2005之间互相调用COM<br转载 2010-07-15 10:55:00 · 1344 阅读 · 0 评论