网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VB.net > 正文
vb.net封装组件成com的方法
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式

  前几天一直在研究如何将.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 ComCClass ComC 

  COM GUID#Region "COM GUID" 

  ' 这些 GUID 提供此类的 COM 标识 

  ' 及其 COM 接口。若更改它们,则现有的 

  ' 客户端将不再能访问此类。 

  Public Const ClassId As String = "97451265-d75d-4d5a-a39d-6c4b68f8dd99" 

  Public Const InterfaceId As String = "5015b9e7-64e6-4750-8c28-5c51d968f1d6" 

  Public Const EventsId As String = "1afd03f4-5974-445e-8ca2-a8e9be3432d7" 

  #End Region 

  ' 可创建的 COM 类必须具有一个不带参数的 Public Sub New() 

  ' 否则, 将不会在 

  ' COM 注册表中注册此类,且无法通过 

  ' CreateObject 创建此类。 

  Public Sub New()Sub New() 

  MyBase.New() 

  End Sub 

  End Class 

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

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

  Public Class ComCClass ComC 

  COM GUID#Region "COM GUID" 

  ' 这些 GUID 提供此类的 COM 标识 

  ' 及其 COM 接口。若更改它们,则现有的 

  ' 客户端将不再能访问此类。 

  Public Const ClassId As String = "97451265-d75d-4d5a-a39d-6c4b68f8dd99" 

  Public Const InterfaceId As String = "5015b9e7-64e6-4750-8c28-5c51d968f1d6" 

  Public Const EventsId As String = "1afd03f4-5974-445e-8ca2-a8e9be3432d7" 

  #End Region 

  ' 可创建的 COM 类必须具有一个不带参数的 

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号