一、为什么需要dll代码复用是提高软件开发效率的重要途径。一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用。比较常见的例子是各种应用程序框架,如ATL、MFC等,它们都以源代码的形式发布。由于这种复用是“源码级别”的,源代码完全暴露给了程序员,因而称之为“...
分类:
其他好文 时间:
2014-07-19 00:28:37
阅读次数:
307
注册脚本通过操作完成Com服务的注册,通过数字形式而非代码API的形式完成,这种形式显得更加简单有效,因为它只需要几行数字代码就可以将一个Key添加到注册表中。本文系统的讲解注册脚本的创建、使用、注意事项等方面的内容,达到一般应用程序,如控制台应用程序,使用注册脚本操作注册表的目的。...
分类:
其他好文 时间:
2014-07-16 11:22:55
阅读次数:
2539
直接看代码:// IPlayCtlpublic: HRESULT OnDraw(ATL_DRAWINFO& di) { RECT& rc = *(RECT*)di.prcBounds; /* Rectangle(di.hdcDraw, rc.le...
分类:
其他好文 时间:
2014-07-09 22:13:03
阅读次数:
257
最近在看《COM技术内幕》,看到第六章时发现该章节在解释ProgID时有点错误,特此记录一下,也给正在学习COM的小伙伴们一个提示。
因为我发现该BUG存在于一些很多大型软件的COM组件中。(开发者估计都是看了该书吧)
在该书的6.3.5章节讲解了ProgID的在注册表中的格式,示例如下
注册表文件格式为
Windows Registry Edito...
分类:
其他好文 时间:
2014-07-06 11:54:57
阅读次数:
163
楼主是不是说用ATL做的控件和用MFCActiveXwizard的控件有什么区别吧依存的动态库不一样,一个是ATL.DLL吧,一个是MFC42.DLL。ATL开发的控件代码少,轻便,便于网上发布;MFC开发的控件笨重,但是MFC类库丰富,利用它便于开发一些具有美观大方界面的控件;这两者各有优势,选择...
分类:
其他好文 时间:
2014-06-28 23:44:08
阅读次数:
942
什么是vs 程序的manifest文件manifest 是VS程序用来标明所依赖的side-by-side组建,如ATL, CRT等的清单。为什么要有manifest文件一台pc上,用一组建往往会有不止一个版本号(c:/windows/winsxs或系统文件夹下),程序在载入的时候,不知载入哪个,于...
分类:
其他好文 时间:
2014-06-24 15:22:47
阅读次数:
139
【问题:名称CImage同时在两个库中出现】1.出现:ATL #include OpenCv#include #define CImage CvvImage2.两者的命名空间:ATL::CImageCV::CImage3.如果希望使用atlimage.h中定义的CImage在MFC程序中调用o...
分类:
其他好文 时间:
2014-06-20 20:13:45
阅读次数:
481
调度(Marshaling): 进程和计算机之间进行函数参数和返回值传输的一个过程。核心: proxy / stub (代理 / 存根)当需要实现调度时,COM在客户程序进程地址空间创建一个proxy对象, 在组件的地址空间创建一个stub对象。客户程序与proxy交互,就像客户机和组件之间存在直接...
分类:
其他好文 时间:
2014-06-18 18:55:50
阅读次数:
267
PS: (proxy / stub)当你开发的组件需要用到代理/存根(即IPC(LPC+RPC)),就需要该工程,否则此工程无用创建Proxy/Stub DLL1. nmake -f HelloPS.mk2.regsvr32 helloPS.dll
分类:
其他好文 时间:
2014-06-18 18:49:46
阅读次数:
265
1、打开VS2010,新建ATL COM 项目,步骤:“文件” --》“新建” --》“项目”,选择“Visual C++” --》“ATL 项目” ,填写“名称” FirstCOM --》“确定”。
2、ATL 项目向导,勾选 【支持COM+ 1.0】和【支持部件注册器】,其他默认,点击完成。
3、切换到类视图,右键单击项目“FirstCOM”--》“添加” --》“类”。
...
分类:
编程语言 时间:
2014-06-17 18:55:10
阅读次数:
412