COM/ATL
happytengfei
编程爱好者——小牛
展开
-
ATL 集合类——CATLMap
1 避免使用STL在COM/ATL编程时,最好避免使用STL中的集合类,ATL的目的是编写COM组件,而COM组件的目的则是为了分布式共享,STL中标准集合类在设计时并没有为这个目的服务,举一个简单的例子,COM中常使用接口,接口的赋值会有特定的需求,标准容器的赋值考虑的只是基于值的赋值。 2 ATL提供了自己的集合类——CATLMap,CATLList, CATLArray, 具体可原创 2012-06-12 22:36:32 · 1987 阅读 · 0 评论 -
error PRJ0019: 某个工具从以下位置返回了错误代码: "正在执行注册" (regsvr32注册组件失败)
1 Regsvr 32简单介绍Regsvr32命令是Windows中控件文件(如扩展名为DLL、OCX、CPL的文件)的注册和反注册工具。命令格式如下: Regsvr32 [/s] [/n] [/i[:cmdline]] dllname /u 卸载安装的控件,卸载服务器注册; /s 注册成功后不显示操作成功信息框; /i 调用DllInstall原创 2012-06-16 17:29:50 · 1100 阅读 · 0 评论 -
手动释放CComPtr或者CComQIPtr
CComPtr和CComQIPtr都是智能指针,一般情况下我们不需要手动释放它们,有几种情况我们需要手动释放这些智能指针:1 ::CoInitialize( NULL ); // 如果在这里进行 COM 初始化 CComQIPtr spFun; HRESULT hr = spFun.CoCreateInstance( CLSID_Fun ); ASSERT( SUCCEED原创 2012-06-17 17:27:12 · 1802 阅读 · 0 评论 -
#import xx.tlb与 #import xxx.dll 区别
1 联系.h/.cpp ---> .obj.rc --->.rec.idl ---> .tlb.obj + .rec + .tlb(作为资源) ------------> dll/exe2 区别 (转自http://blog.csdn.net/chuwachen/article/details/6193864)tlb文件:com类型库文件,它包含接口相关信息。在原创 2012-06-17 19:33:19 · 2961 阅读 · 0 评论 -
_AtlBaseModule, _AtlComModule, _AtlWinModule和_pAtlModule
1 在老的代码里(ATL 3.0)我们可以直接通过CComModule类的实例(_Module, _Module定义在ProjectName.cpp文件中)获取模块句柄和资源句柄,e.g. 获取IDS_VERSION字符串:LoadString( _Module.GetResourceInstance(), IDS_VERSION,szBuffer,sizeof( szBuffer )原创 2012-07-03 14:23:01 · 1268 阅读 · 0 评论