• 注册
  • 关于作者
    企业认证:趣记站长
    关注 6 粉丝 4 喜欢 9 内容 992
    江西省·南昌市
    聊天 送礼
    • 查看作者
    • vb.net封装组件成com的方法

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

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

        方法如下: 

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

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

        然后 在  solution manager(解决方案资源管理器)中 的项目上点击右键 ,在弹出的菜单上 点击 添加 \ 类 ,在弹出的对话框中选择 com类 ,

      C#中对POP3邮件解码
      用C#实现全屏幕截图,.Net网站独立配置文件读写方案,SmartSoft中用C#.Net实现AutoCAD块属性提取,.NET组件和COM组件之间的相互操作,.net中前台javascript与后台c#相互调用,正确理解C#中的ref关键字,Visual C#2005中使用正则表达式,实例:用Visual C#制作新闻阅读器,病毒及流氓软件自我复制的简单实现(C#),在.NET中使用域对象持续模式,汇总c#.net常用函数和方法集,C#开发的两个原则的深入讨论,c#.net常用函数列表,在C#程序设计中使用Win32类库,用C#轻松在DOTNET中实现缩略图,使用C#编写的一个定时关机程序,深入理解C#编程中的组件-事件-委托,通过Visual C#.NET建一个DTS任务,用C#的Raw Socket实现网络封包监视,利用C#实现标准的 Dispose模式
      Visual C#

      修改类的名称(本例中修改为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 类必须具有一个不带参数的 Public Sub New() 

        ' 否则, 将不会在 

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

        ' CreateObject 创建此类。 

        Public Sub New()Sub New() 

        MyBase.New() 

        End Sub 

        Public Sub Northsnow()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的确的很强。把很多复杂的东西都包装起来帮我们实现。我们在享受轻松的解决难题的时候,距离底层技术却越来越远。不知道是喜是悲。

      在VB.NET中操作MySQL数据库
      VB.Net调用存储过程并得到返回值,详解VB.NET对象浏览器作用体现,老生常谈:从VB6迁移到VB.net,VB.net2008精彩实例,窗体应用技巧,用VB.net2008打造你的影音播放器,一个Office 2003风格的通知控件(VB.NET),在VB.NET中操作MySQL数据库,vb.net开发中使用excel插件的代码,vb.net封装组件成com的方法,.NET环境下几种不同的邮件发送解决方案,用.net动态创建类的实例,VB.NET实现DataList横向数据交替变色,在VB.Net中创建使用控件数组,在Visual Basic .NET 中实现后台进程,VB.NET中使用Directsound9之简单播放,用新VB.NET 枚举提高效率,在有Clipboard的应用程序间移动数据,VB.NET中的变量范围差异,从Visual Basic 6.0 到 Visual Basic.NET 的转换,微软.Net程序设计FAQ
      VB.net

    • 0
    • 0
    • 0
    • 80
    • 单栏布局 侧栏位置: