- 浏览: 519604 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (299)
- Oracle(pl/sql_Erp_Pro*C) (69)
- 设计模式 (4)
- spring (23)
- ext (17)
- apache开源项目应用 (4)
- jquery (16)
- 生活琐事 (8)
- 下载资源 (23)
- mysql (2)
- Eclipse使用积累 (5)
- 报表类(报表/图表) (13)
- php (4)
- Web多彩文本框 (3)
- json (4)
- jqgrid (2)
- ant (2)
- java算法积累 (8)
- EL表达式/JSTL (4)
- poi (3)
- gwt (2)
- 爬网第一步 (2)
- javascript (17)
- Javaweb (8)
- tomcat (1)
- flex (1)
- Java&DB (3)
- J2SE (7)
- linux (3)
- 数据结构 (1)
- dot net (5)
- struts (1)
- ibatis (1)
- log4j (1)
- 项目管理 (1)
- Java native interface(jni,jacob......) (5)
- applet (1)
- VB.net/C#.net/JNI (20)
- css (1)
- Sqlite (1)
- servlet (1)
- REST (1)
最新评论
-
wenhurena:
能不能给一下解压密码roki.work.2017@gmail. ...
Ebs解体新書と学習資料1 -
liutao1600:
楼主写的太好了,每天学习~~
Spring_MVC(6)测试 -
liutao1600:
太好了,每天学习你的文章~~~
Spring_MVC(3)表单页面处理 -
liutao1600:
学习了,太好了
Spring_MVC(2)控制层处理 -
liutao1600:
学习了~~~
Spring_MVC(1)构建简单web应用
前几天一直在研究如何将.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 类必须具有一个不带参数的 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_dot_net__make_com_component.rar (4.1 KB)
- 下载次数: 7
发表评论
-
程序集与托管模块
2010-10-26 16:22 1245本文是为了学习程序集而整理的网上资料,主要包括两个部分,概念和 ... -
.NET程序集
2010-10-26 15:03 2235【主要内容】@将源代码 ... -
strong-named
2010-10-26 14:48 880前段时间自己整理的一个有关strong-named assem ... -
CLR笔记(二)
2010-10-26 13:53 9896.类型和成员基础 1.Class的可见性有publi ... -
CLR笔记(一)
2010-10-26 13:22 18111.CLR的执行模型 ... -
Java调用C#
2010-10-25 22:49 1841Java调用C# 下载: http://www.co ... -
Managed Extensions for C++ Reference
2010-10-25 18:10 1397Managed Extensions for C++ Refe ... -
注入托管代码
2010-10-25 17:18 1724前言:本文的重点不在 ... -
jni调用dll及dll已用其它dll的资料
2010-10-25 16:00 902http://blog.csdn.net/KONGKONGWJ ... -
C# method calls within a Java program
2010-10-23 16:11 1072.net产生的比java晚,其类库的封装在某些方面也比ja ... -
走近COM Interop
2010-10-23 15:40 1644走近COM Interop—— RCW ... -
get chartobjects from VB.net
2010-10-18 10:34 1346Excel.Sheets sheets = oWB.Works ... -
VB.NET调用DLL实现方法解析
2010-10-13 10:43 3523VB.NET开发平台 ... -
VB.net 的Me My MyBase MyClass
2010-10-11 23:46 2018第一次接触 Visual Basic 中的 Me、My、M ... -
使用.Net访问Office编程接口(PIA和IA的区别)
2010-10-11 10:25 3505在这篇文章里面,我将向大家介绍如何在.Net中访问Offi ... -
Exposing .net Components to Com
2010-10-11 09:47 816http://www.codeproject.com/KB/C ... -
.net Com组件注册
2010-10-11 09:30 1965本文将详细为大家介绍一个java调用.net DLL的方法,以 ... -
Writing an Activex control in VB.net
2010-10-09 22:33 1409The problem with that example i ... -
VB set Excel color
2010-10-08 17:30 941Sub Macro3()'' Macro3 Macro' ' ...
相关推荐
5. **发布组件**:将组件编译成DLL文件,然后可以将其添加到其他VB.NET项目的引用中,或者发布到NuGet或其他代码共享平台供他人下载使用。 在VB2003中,虽然.NET Framework版本相对较低,但仍然支持组件开发的基本...
1. 面向对象编程(OOP):VB.NET完全支持OOP原则,包括封装、继承、多态性。你可以定义类(Class)、接口(Interface)、结构(Structure),并利用抽象方法(Abstract Methods)、虚方法(Virtual Methods)和重写...
在VB.NET中,可以使用WinForms的内置方法或者自定义绘图来实现。 5. **事件处理**:可能会涉及鼠标点击、键盘输入等事件,以便于用户交互,比如暂停、停止、改变滚动速度等。 6. **用户界面(UI)设计**:包括字体...
2. VB.NET源代码文件(.vb),包含项目中的类和方法,实现浏览器的功能。 3. 可能还有资源文件,如图片、图标等,用于构建用户界面。 4. WebKit.NET库的DLL文件,这是项目运行所必需的。 5. 示例网页或其他测试文件...
11. **.NET Framework组件**:VB.NET可以利用.NET Framework提供的大量类库,如System.IO、System.Data、System.Net等,大大减少了开发工作量。 通过"VB.NET应用集锦例程下载",开发者不仅可以学习到上述知识点,还...
标题提到的"ccrpprg 进度条控件"是一个专为VB.NET设计的进度条组件,可能是为了提供更加美观或功能丰富的进度反馈体验。这个控件可能是开发者根据自己的需求定制的,旨在替代系统自带的默认进度条控件,比如...
1. **面向对象编程**:VB.NET全面支持面向对象编程(OOP),包括类、对象、接口、继承、多态和封装等概念。学习者可以通过本教程了解如何创建和使用类,以及如何利用继承来实现代码重用。 2. **.NET Framework**:...
在VB.NET中,创建自定义控件(UserControl)是一项重要的技能,这允许开发者将复杂的逻辑或一组相关功能封装到一个可复用的组件中。本教程将带你深入理解如何利用VB.NET创建自定义控件,并将其应用到你的项目中。 ...
这需要对数据进行复杂的运算和判断,VB.NET的面向对象特性使得这些逻辑可以被封装在类中,便于管理和维护。 4. **异常处理**:为了保证系统的稳定性和用户体验,开发团队可能在关键代码段中添加了异常处理机制,以...
在"eloamComDemo"示例中,开发者可能已经实现了上述功能,并封装成了易于使用的组件或类库。这通常会包含摄像头的初始化、预览、捕获、保存等步骤,以及对不同文件格式的支持。如果需要深入学习,可以详细研究这个...
在VB.NET中,我们可以通过Windows Forms来构建用户界面,这是一套控件和组件,允许开发者创建交互式的图形用户界面。 在这个科学计算器项目中,开发者可能使用了TextBox控件来显示计算结果,Button控件代表数字和...
在IT行业中,VB.NET(Visual Basic .NET)是一种流行的编程语言,用于开发各种应用程序,包括与硬件设备如PLC(可编程逻辑控制器)进行通信的软件。本实例着重讲解如何利用VB.NET与OMRON系列PLC进行通讯,尤其是通过...
这个“VB.NET程序包更新.zip”压缩包很可能包含了一些VB.NET项目的更新、修复或者增强功能的组件。让我们深入探讨一下VB.NET的相关知识点。 1. **VB.NET语法基础**:VB.NET的语法结构与经典的Visual Basic有显著...
2. **面向对象编程**:VB.NET完全支持面向对象编程(OOP),包括类、对象、接口、继承、多态和封装等概念。你可以创建自定义类来组织代码,通过接口实现多态性,利用继承来扩展已有类的功能。 3. **事件驱动编程**...
2. **面向对象编程**:VB.NET完全支持面向对象编程(OOP),包括类、对象、继承、封装、多态性等概念。你可以创建自定义类,定义属性和方法,以及通过继承和接口实现代码复用。 3. **控件与窗体**:在VB.NET中,...
总结来说,VB.NET三层代码自动生成是一种高效的开发方法,它结合SQL Server数据库,通过自动化工具自动生成表示层、业务逻辑层和数据访问层的代码,从而提高开发效率,保证代码质量。而提供的安装文件则帮助将生成的...
ADO.NET是.NET Framework提供的数据库访问技术,VB.NET代码可能会涉及Dataset、DataTable、DataAdapter等组件,以及SQL命令的执行,用于连接和操作各种数据库。 9. **GUI编程** VB.NET的Windows Forms和WPF...
对于TSCLIB.DLL,我们需要先在VB.NET项目中添加对它的引用,然后定义对应的函数声明,以便在VB.NET代码中调用。 以下是一些可能的步骤和知识点: 1. **引用DLL**:在VB.NET项目中,右键点击“引用”->“添加引用”...