随笔分类 - COM+与.NET
摘要:这些是我已经读过了的或者是正在读的.net图书,同时也是我在综合了网上及论坛中各方面意见之后,认为在目前的.net框架领域内最值得系统研习的6本核心书籍,而且其编号是根据由易到难、从入门到上手有序排列的,特把它们罗列出来,希望在过年前后能够集中完成其阅读(尤其是后三本书,工作量还是非常大的)。 1. Applied Microsoft .NET Framework Programming, Je...
阅读全文
摘要:转载一篇关于COM组件中使用自定义数据的文章,全文见这里。
阅读全文
摘要:推a °套间不等于线程,它只是一个逻辑概念,实现为一个结构体 °环境不等于线程,它只是一个逻辑概念,实现为一个结构体,可以理解为对象的配置 - °同一进程可以有多个STA,但是只能有一个MTA和一个NTA °同一套间,无论是何种套间,均可包含一个或多个环境 °同一环境可以包含一个或多个对象 °同一环境只能存在于一个套间当中 °同一COM对象只能...
阅读全文
摘要:1. 服务器端,控制面板->管理工具->组件服务,在组件管理器中找到刚才注册的COM+应用程序MyApp 2. 右键选取MyApp,选择导出...,使用向导导出一个应用程序代理,分别名为MyApp.MSI和MyApp.MSI.cab 3. 在客户端操作,将服务器上的应用程序代理安装文件copy过来,并安装,至此客户端的部署完毕 4. 初步验证一下,打开客户端组件管理器,可以找到一个名为...
阅读全文
摘要:闲来无事,用C#控件(Class Library)作个了简单的双机互连COM+示例 1. 准备工作:两台主机,各自软件配置分别为 1. 服务器:Vs.net 2003 + .Net Framework1.1 SDK SP1 + WinXP pro SP2 1. 客户端:.Net Framework1.1 SP1 Distributed Package + WinXP pro SP2 2...
阅读全文
摘要:对象池(Object Pooling)和即时激活(Just In Time Activation)是COM+提供的两种不同的实例管理机制。似乎有很多人对COM+中的对象池和JITA的设计思想不太了解,甚至有所误解,这里随便说几句。 池(Pooling)是一种很常见的设计思想,池即缓冲,对象池即COM+对象(必须是可以池化的)的缓冲区。一般认为,所谓池化缓冲用以优化访存效率,然后我觉得这句话表...
阅读全文
摘要:ref: 不允许别名,不允许为空指针unique : 不允许别名,允许为空指针ptr: 允许别名,允许为空指针其中:1. “别名”意味着如果同时有两个指针指向同一内存区域,则这两个指针互为别名,其可以推广至多个指针的情况2. “空指针”则意味着是否空指针仍然需要marshaling,其主要是出于marshaling传输效率考虑
阅读全文
摘要:有三种方法,从烦到易:1. 直接include MIDL生成的 XXX_i.c 文件并导入类型库,注意只需include即可,不要将其添加到项目文件里面来,编译会出错 #include"atlexe_i.c"#import"atlexe.tlb"no_namespace,raw_interfaces_only 然后即可使用通常的CLSID_AtlExeServ...
阅读全文
摘要:以API被调用先后次序书写,备查: STDAPICoCreateInstance(REFCLSIDrclsid,LPUNKNOWNpUnkOuter,DWORDdwClsContext,REFIIDriid,LPVOID*ppv);STDAPICoGetClassObject(REFCLSIDrclsid,DWORDdwC...
阅读全文
摘要:出错显示总是:Access Violation at Memory 0x...........搞定之后,发现是idl定义的问题,关于idl中接口方法指针参数的定义,一定要记得用指针属性加以修饰,如ptr/ref/string等,不然,即使接口方法参数被定义成指针,也不会被midl正确的解析成为标准marshaling,导致访问出错,ft again....
阅读全文
摘要:ft...--! 一直Marshaling出错,花了半天功夫,原来跟一个C/S结构的应用调试没区别。用两个vs.net调试器,一个开启COM exe server工程,设置好断点,F5启动;一个开启COM client工程,设置好断点,F5启动调试。如是vs.net调试器即可在两者之间来回切换实现单步调试了。
阅读全文
摘要:AtlComExeServer.exe /Register AtlComExeServer.exe /Regserver (prefer)OR AtlComExeServer.exe /Unregister AtlComExeServer.exe /Unregserver (perfer)
阅读全文
摘要:可单步运行: cscript //X test.vbs 遇到Stop(vbs)或者是Debug指令方中断至调试器: cscript //D test.vbs或者用wscript作为脚本解释器宿主,用msgbox而不是cscript里面的write输出结果
阅读全文