`
kimmking
  • 浏览: 543756 次
  • 性别: Icon_minigender_1
  • 来自: 中华大丈夫学院
社区版块
存档分类
最新评论

vb和asp中调用c#类库的详细步骤了截图

阅读更多

作者:KimmKing  (kimmking@163.com)        200812411:04:26

摘要:本文阐述了在vbasp中调用c#生成的.netdll的方法和步骤。

 

 

使用c#语言在.net平台生成的dll是基于MSIL的二进制代码,通常情况下是无法被native的语言和程序调用的(例如vb,vc,delphi)。但是一般来说windows上native的程序都是可以直接使用com对象的。通过.net平台提供的一些工具,可以为其伪造一个com接口并注册到系统中。此时,可以在native的程序里,通过这个伪com接口来实现此.net的dll的调用。

1       使用C#建立.netdll

1.1    建立项目

.net中新建一个项目:TestCom

1.2    实现c#

class1.cs文件中添加一个接口和一个类:

using System;

using System.Collections.Generic;

using System.Text;

using System.Runtime.InteropServices;

 

namespace TestCom

{

    [ComVisible(true)]

    public interface iClass1

    {

        string test();

    }

 

    [ComVisible(true)]

    [ClassInterface(ClassInterfaceType.AutoDual)]  

    public class Class1 : iClass1

    {

        public string test()

        {

            return "ok";

        }

 

    }

}

 

注意接口和类上的属性,对com可见和生成com类型。

1.3    添加强名

 选择开始菜单中Vistual Studio目录下的Vistual Studio Tools下的Vistual Studio 命令提示。使用sn -k c:\myKey.snk生成签名文件。

在项目上右键,点击属性,选择签名,选中为程序集签名,选择myKey.snk文件。

 

1.4    生成解决方案

在项目目录的\TestCom\bin\Debug中可以找到TestCom.dll。至此,c#生成的.net dll已经完成。

 

2       生成和注册类型库

 

2.1    生成tlb类型库

Visual Studio命令提示符下,切换到此目录。

输入tlbexp TestCom.dll /out:TestCom.tlb,提示成功导出tlb类型库文件。

 

2.2    注册类型库

输入regasm TestCom.dll /tlb: TestCom.tlb /codebase,将类型库导入到注册表。提示成功注册了类型,说明操作成功,此时TestCom .dll可以作为一个com来使用。

 

2.3    添加dllGAC

输入gacutil /i TestCom.dll,将此.net程序集添加到GAC

 

3       vb调用测试

3.1    创建vb项目

vb中新建一个标准exe项目。

在项目菜单选择引用,在弹出的引用com对象列表中找到TestCom,选上。

在窗体上拖放一个按钮,双击按钮,在按钮事件里输入代码:

Dim a As New TestCom.Class1

MsgBox a.test

 

 

3.2    运行程序

启动项目,点击按钮,弹出对话框ok,说明调用成功。

 

 

 

4       asp调用测试

4.1    创建asp文件

iis的根目录下新建一个文本文件,改名为1.asp,输入以下内容:

 

<%

SET s = CreateObject("TestCom.Class1")

Response.Write(s.test())

%>

 

 

4.2    运行程序

ie中访问此文件,页面输出ok,说明调用成功。

 

 

 

 

分享到:
评论
4 楼 dotaallstars 2009-01-12  
木哥哥 写道
放到asp的目录里不知道可以不

不可以
3 楼 木哥哥 2009-01-12  
放到asp的目录里不知道可以不
2 楼 kimmking 2008-12-26  
jack 写道
asp调用的时候,dll放在那个位置?

不用管了。dll在GAC中,全局的。CLR自己就能找到。


cite:
------------------------------------
2.3    添加dll到GAC
输入gacutil /i TestCom.dll,将此.net程序集添加到GAC。
---------------------------------------
1 楼 jack 2008-12-26  
asp调用的时候,dll放在那个位置?

相关推荐

    VB6.0调用C# Dll解决方法

    本文将详细解释如何使用VB6.0调用由C#编写的DLL动态链接库,以及在这一过程中涉及到的关键步骤和知识点。 首先,我们要了解VB6.0和C#之间的差异。VB6.0是基于COM(Component Object Model)技术的,而C#是.NET框架...

    C#(VB.net)数据库访问操作类库

    C#(VB.net)数据库访问操作类库 你知道,一些类库把常用的操作封装起来,以后可以直接调用,就节省了普通开发人员的大量精力. 对于CN 大多数公司都是开发MIS系统 说白了就是数据库系统 使用数据访问类库,必将节省大量...

    ASP 调用C#编写的DLL的方法(成功运行)

    ### ASP调用C#编写的DLL的方法:成功运行与数据获取 在Web开发领域,ASP(Active Server Pages)与C#作为两种不同的编程环境和技术栈,它们之间的交互和集成是许多开发者关注的重点之一。本文将深入探讨如何在ASP...

    asp.net分页类库

    1. **手工编写代码**:开发者可以直接在后端代码(如C#或VB.NET)中实现分页逻辑,通过计算页码、查询数据库并返回相应页面的数据。这种方法灵活性高,但需要编写较多的代码,且容易出错。 2. **使用DataGrid、...

    asp.net 打包类库

    在IT行业中,ASP.NET是一种广泛使用的Web应用程序开发框架,由微软公司开发,它允许程序员使用C#或VB.NET等编程语言构建动态网站、web应用和服务。在这个特定的场景中,"asp.net 打包类库"指的是一个专门设计用于...

    vb.net 转 c#

    VB.NET的`With`块在C#中则需要显式地创建对象并调用其属性和方法。此外,VB.NET的`If...Then...Else`语句在C#中变为`if...else`结构,而`For Each`循环在C#中保持一致。 在实际转换过程中,可以使用专门的代码转换...

    NET_Framework_类库

    它支持客户端应用和ASP.NET页面中的数据操作。 11. **System.Data.Common**、**System.Data.Odbc**与**System.Data.OleDb**:这些命名空间封装了.NET Framework的数据提供程序,用于访问数据库和其他数据源,其中...

    同时使用C#与VB.NET两种语言(2.0)

    在.NET框架2.0版本中,C#和VB.NET是两种非常重要的编程语言,它们都是Microsoft为.NET平台设计的高级编程工具。这篇文章将探讨如何在同一个项目中同时使用这两种语言,以及它们之间的交互和共同开发的可能性。 首先...

    一个完全免费的WEB打印插件控件,支持:C#/vb.net/asp/PHP/JSP,也有实例

    在Web打印场景中,开发者可以利用C#的强类型系统和丰富的类库创建服务器端的打印逻辑。 2. VB.NET:Visual Basic .NET是另一种.NET语言,它简化了编程语法,使初学者更容易上手。VB.NET同样可以用于创建Web应用程序...

    ASP.NET类库

    7. **razor语法**:ASP.NET中的视图通常使用Razor语法来编写,这是一种简洁的标记语言,结合了HTML、C#和VB.NET,使得视图模板的编写更加直观。 8. **SignalR**:这个库用于实现实时通信,比如聊天室、实时通知等,...

    快钱人民币支付网关开发包(高级版) ASP C# JSP PHP VB.NET

    快钱人民币支付网关开发包是一款专为开发者设计的工具,用于集成快钱支付系统到各种Web应用程序中,支持多种编程语言,包括ASP、C#、JSP、PHP和VB.NET。这款高级版的开发包提供了更全面的功能和优化的性能,旨在帮助...

    asp.net调用类

    在ASP.NET中,我们可以使用C#或VB.NET等.NET语言来创建类。一个类通常定义了对象的状态(属性)和行为(方法)。例如,我们可以创建一个名为`Person`的类,包含`Name`属性和`Speak`方法: ```csharp public class ...

    C#与Asp.net介绍

    5. **安全性**:Asp.NET提供了身份验证和授权机制,C#代码可以配置和操作这些机制,确保应用程序的安全性,如角色基础的权限控制。 6. **异常处理**:C#中的try-catch-finally语句块用于捕获和处理运行时错误,确保...

    barcode条码打印类库

    6. **兼容性**:为了适应不同的开发环境,这类类库通常支持多种编程语言,如C#、VB.NET、C++、Java等,并能与Windows Forms、WPF、ASP.NET等多种框架无缝集成。 7. **错误处理与调试**:类库会提供错误处理机制,当...

    ASP.NET画图全攻略

    在本文中,我们将使用 C#语言来生成饼图和柱状图。首先,我们需要建立一个 C# 类库,名为 insight_cs.webcharts。然后,我们可以在这个类库中定义一个名为 piechart 的类,该类可以生成饼图。 在 piechart 类中,...

    快钱人民币支付网关开发包(ASP、C#、JSP、PHP、VB.NET)

    快钱人民币支付网关开发包是一款专为开发者设计的工具,用于集成快钱支付系统到各种Web应用程序中,包括ASP、C#、JSP、PHP和VB.NET这五种常见的编程语言环境。这个开发包提供了详尽的接口文档和示例代码,帮助开发者...

    Com组件的调用流程

    2. **ASP调用**:在ASP(Active Server Pages)中,使用`CreateObject`函数创建`TestCom.Class1`的实例,然后调用其`test()`方法。在浏览器中查看`1.asp`,如果页面输出"ok",表明ASP也成功调用了COM组件。 总结来...

    NET Framework 类库参考

    3. **ASP.NET**: 这是用于构建Web应用程序的技术,它提供了服务器控件、页面生命周期管理以及状态管理等特性,使开发者能够使用C#或VB.NET等语言构建动态网站。 4. **ADO.NET**: 这是.NET Framework中的数据访问...

    aspnet操作JS类库.zip

    ASP.NET 操作 JavaScript 类库是 Web 开发中的一个重要主题,特别是在使用 Visual Studio(VS)作为开发工具时。本文将深入探讨如何在 ASP.NET 中有效地利用 JavaScript 库,并结合 VS2005 和 VS2008 的环境进行开发...

    用vb.net给系统挂钩子的工程

    由于.NET Framework的原生支持有限,对于底层系统操作如设置全局钩子,通常会借助C++或C#这样的更接近硬件的语言编写动态链接库(DLL),然后在VB.NET项目中通过P/Invoke(Platform Invoke)调用来实现跨语言交互。...

Global site tag (gtag.js) - Google Analytics