网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 网络学院 >> 程序设计 >> VB编程 >> 文章正文
  vb.net 封装 组件 成 com的方法            【字体:
vb.net 封装 组件 成 com的方法
作者:佚名    文章来源:不详    点击数:    更新时间:2007-9-12    

  前几天一直在研究如何将.net的组件封装成com供非托管代码调用。
正在装载数据……
上网查资料,查书,试验,最后测试了vb.net,c#,vc++.net 等多种语言,都没有搞定。在论坛上发了帖子。虽然有回复,但是只是给了些资料。资料看了又看,反复的研读。照着例子一步一步地做。但总是有些地方没有成功。正在绝望中。一个朋友给了我简单的答案。我在高兴的同时也感慨自己的愚钝和呆笨。

  原来在vs.net 2005中用vb来实现这个功能是如此的简单。 

  方法如下:

  新建一个 项目 ,选择 Visual Basic \ Window \ 类库 ,假设项目名为ClassLibrary1

  然后 在 solution manager(解决方案资源管理器)中, 将 新创建的 Class1.vb 文件删除。

  然后 在  solution manager(解决方案资源管理器)中 的项目上点击右键 ,在弹出的菜单上 点击 添加 \ 类 ,在弹出的对话框中选择 com类 ,修改类的名称(本例中修改为ComC.vb),后点击 添加 按钮。

则会看到ComC.vb的代码如下:

<ComClass(ComC.ClassId, ComC.InterfaceId, ComC.EventsId)> _
Public Class ComC

COM GUID

    
' 可创建的 COM 类必须具有一个不带参数的 Public Sub New() 
    ' 否则, 将不会在 
    ' COM 注册表中注册此类,且无法通过
    ' CreateObject 创建此类。
    Public Sub New()
        
MyBase.New()
    
End Sub


End Class

现在只要在这个类中添加 public 的成员即可 ,假如我们添加一个 方法 Northsnow

 

<ComClass(ComC.ClassId, ComC.InterfaceId, ComC.EventsId)> _
Public Class ComC

COM GUID

    
' 可创建的 COM 类必须具有一个不带参数的 Public Sub New() 
    ' 否则, 将不会在 
    ' COM 注册表中注册此类,且无法通过
    ' CreateObject 创建此类。
    Public Sub New()
        
MyBase.New()
    
End Sub

    
Public Sub Northsnow(ByVal ss As String)

        
MsgBox(ss)
    
End Sub


End Class

然后就可以编译,编译后,在pb中添加如下的代码来调用这个com

int   intValue   
oleobject   objOle   
objOle
=create   OLEObject   
intValue
=objOle.connecttonewobject("ClassLibrary1.ComC")

objOLe.Northsnow("I am Northsnow")

运行这个程序就会看到效果。

  我在C#中没有看到类似的com类.

现在这个棘手的难题解决了之后,工作可以继续了。心理挺高兴的。但是在高兴之余又有一种奇怪的感觉。

VS.net的确的很强。把很多复杂的东西都包装起来帮我们实现。我们在享受轻松的解决难题的时候,距离底层技术却越来越远。不知道是喜是悲。




本文来源:http://blog.csdn.net/precipitant/archive/2007/09/07/1775964.aspx
站内文章搜索 高级搜索
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
     如何在ado中使用connect…
     vb 贪吃蛇 单人版游戏 (…
     关于在vb中进行com组件的…
     用vb6.0编写自我升级的程…
     vb自动登陆网络站点详解…
     vb打造超酷个性化菜单(…
  • Sevrlet 中防止中文乱码策略

  • (JSP)在文本域中显示超链接n…

  • genexus中对字符串的格式补空…

  • SIP简介,第2部分:SIP SERV…

  • JavaWeb中的Session、Sessio…

  • tomcat下配置jspservletbean…

  • .net程序员的盲点(八):泛…

  • OpenCV在VC.net,VC6.0等中的…

  • 同步租塞SOCKET编程

  • 内存管理内幕--Jonathan Bar…

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    网络学院©2007 www.23book.net
    为您提供web编程,vb编程,vc编程,服务器架设管理,数据库设计等方面的知识 站长:David