
COM Interop
文章平均质量分 80
知平软件
上海知平软件的博客
展开
-
COM套间对.NET程序使用COM对象的影响(中)
COM里面,套间是一个 想象中的边界,用来在多线程环境中安全使用线程安全和线程不安全的COM对象。什么叫做线程安全的COM对象呢?再多线程环境中,如果这个COM对象自己实现了同步机制,可以被多个线程同时调用而不破坏对象内部数据的完整性的话,那么这个对象就叫做线程安全的对象。然而COM对象有一个目标就是,即使在多线程环境里面也可以安全地使用线程不安全的COM对象。也就是说,即使COM对象内部没有实现原创 2009-02-11 13:45:00 · 1565 阅读 · 0 评论 -
COM套间对.NET程序使用COM对象的影响(下)
由于所有的COM对象都会被分配到一个相应的套间里面,因此在.NET里面,为了方便.NET程序调用COM对象,每一个.NET线程都会被分配到一个套间里面――即使你没有在代码里面指定线程运行的套间。在.NET线程里面创建的COM对象都会被分配到特定的套间里面,如果两个.NET线程 被分配到了不同的套间里,那么两个线程之间互相调用COM对象就需要列集函数调用。在.NET 2.0以后,默认情况下.NE原创 2009-02-12 18:18:00 · 1418 阅读 · 0 评论 -
COM套间对.NET程序使用COM对象的影响(上)
在COM时代里,套间是用来简化多线程环境下使用COM对象的,然而在.NET里面,微软又放弃了套间的概念,这样给我们在.NET里面使用COM对象的时候造成了很多的麻烦。例如有的时候你会发现在有的线程里面创建了COM对象并将它的引用保存在全局变量里面,在其他的线程里面使用的时候,却发现.NET扔出一个InvalidCastException的异常,发生这种情况大多数都是因为两个.NET线程运行在不同的原创 2009-02-10 23:06:00 · 1550 阅读 · 0 评论 -
用C#编写一个进程外的COM组件
我在以前的一篇文章《COM互操作 - 在VB 脚本里面使用.NET类型》里面写过如何在COM客户端程序里面使用.NET组件,但是这些.NET组件都属于进程内的组件,即COM客户端需要将CLR和.NET组件都加载进自身进程的内存空间里面才能使用。上一次在MSDN中文论坛上看到有网友问如何使用C#编写一个进程外的COM组件,由于在使用regasm.exe注册.NET组件的时候,regasm.exe将.原创 2009-02-20 18:56:00 · 3898 阅读 · 0 评论 -
用C#编写一个进程外的COM组件示例代码讲解
代码的链接在《用C#编写一个进程外的COM组件》,小技巧:如果你要同时看示例代码和讲解的话,可以用浏览器分别打开示例代码和这篇文章,然后使用Windows提供的纵向平铺窗口功能就可同时看两篇文章了。 TestComVisibleClass.cs里面定义了我们要发布给COM客户程序的.NET对象,由于我们的.NET进程外组件需要调用几个COM库的API,因此在ComHelperClass里面原创 2009-02-21 15:26:00 · 3721 阅读 · 2 评论 -
让人混淆的UnmanagedType.LPStruct列集指令(翻译)
原始文献地址:http://blogs.msdn.com/adam_nathan/archive/2003/04/23/56635.aspx 在列集有多种非托管表现形式的托管数据类型时,MarshalAsAttribute属性可以改变列集(Marshaling)行为。一般来说,使用MarshalAsAttribute的难点是如何在它的构造函数里面选择正确的UnmanagedType枚举翻译 2009-03-15 17:18:00 · 1668 阅读 · 0 评论 -
应用程序调试技术视频各集技术概述
这是第一部分,Windows平台下的应用程序调试技术讲座视频, 视频购买地址:http://product.china-pub.com/3502590 第1讲 准备调试环境 调试符号文件的作用; 创建符号文件的方法; 在调试器里有无符号文件的区别; 公开符号版本和私有符号版本的区别; 创建公开符号文件的方法;原创 2012-03-01 15:34:51 · 4875 阅读 · 0 评论 -
应用程序调试技术视频观看指南
这是第一部分,Windows平台下的应用程序调试技术讲座视频, 视频购买地址:http://product.china-pub.com/3502590 对于研发公司IT支持人员,项目或开发经理,设置事后可跟踪的BUG跟踪以及分析服务系统,建议选择观看:1、应用程序调试技术第1讲 准备调试环境2、应用程序调试技术第2讲 管理符号文件与源代码3、应用程序调原创 2012-03-01 15:35:50 · 5312 阅读 · 0 评论