争怎路由网:是一个主要分享无线路由器安装设置经验的网站,汇总WiFi常见问题的解决方法。

Com与.Net互设置

时间:2024/7/5作者:未知来源:争怎路由网人气:

一、.Net调用Com组件

.Net调用Com组件主要分为两类:静态调用及动态调用。

所谓静态调用:指通过通过tlbimp.exe命名产生Com组件在.Net环境下的包装类,然后通过这个包装类来访问Com组件。

所谓动态调用:是指不通过Com组件的包装类来进行Com组件调用,而是在远行时通过反射来进行Com组件调用。

下面将分别详细的讨论这两种实现方法:

<!--[if !supportLists]-->²       <!--[endif]-->静态调用

<!--[if !supportLists]-->1、  <!--[endif]-->编写Com组件MyComponent.dll

<!--[if !supportLists]-->2、  <!--[endif]-->产生可访问Com组件的包装类:

tlbimp /out:Interop.MyComponent.dll MyComponent.dll

<!--[if !supportLists]-->3、  <!--[endif]-->.Net代码中访问

只要在项目添加Com包装类,就可以像访问.Net的装配件一样访问Com组件。

 

当然上面的三个步骤也可以在VS中直接添加对Com组件的引用,让VS自动完成第二步。

注意:

<!--[if !supportLists]-->1、  <!--[endif]-->如果引用Com组件的.Net项目为结果为强命名组件,这个时候要求Com组件的包装类也必须为强命名组件,所以这个时候必须手动进行第二步操作,并且在产生包装类的时候设置snk文件名称,具体操作方法为:

tblimp /keyfile:filename.snk /out:Interop.MyComponent.dll MyComponent.dll

<!--[if !supportLists]-->2、  <!--[endif]-->要想有更多的设置请参考tlbimp的使用方法。

 

<!--[if !supportLists]-->²       <!--[endif]-->动态调用

<!--[if !supportLists]-->1、  <!--[endif]-->编写Com组件MyComponent.dll

<!--[if !supportLists]-->2、  <!--[endif]-->.Net程序中产生要被调用的Com组件类的Type

Type comType = Type.GetTypeFromCLSID( Guid );

Type comType = Type.GetTypeFromProgID( string );

<!--[if !supportLists]-->3、  <!--[endif]-->生成Com组件类对象

object comObj = Activator.CreateInstance( comType );

object comObj = comType.InvokeMember(

null,

            BindingFlags.DeclaredOnly

关键词:Com与.Net互设置




Copyright © 2012-2018 争怎路由网(http://www.zhengzen.com) .All Rights Reserved 网站地图 友情链接

免责声明:本站资源均来自互联网收集 如有侵犯到您利益的地方请及时联系管理删除,敬请见谅!

QQ:1006262270   邮箱:kfyvi376850063@126.com   手机版