Help!!! vb.net编写的类,打包后如何在VB中使用?(高分求救)急!!!

bin_bin 2003-06-06 11:24:14
vb.net编写的类,打包后如何在VB中使用?
选择添加引用,它说Can't add referrance to the specificied file
为什么?
该如何实现呢?
...全文
39 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bin_bin 2003-06-07
  • 打赏
  • 举报
回复
如何注册为com???

bin_bin 2003-06-07
  • 打赏
  • 举报
回复
为什么我只能添加 tlb 的文件,而无法打包为 dll 来引用呢?
xhan2000 2003-06-07
  • 打赏
  • 举报
回复
注册为com就行了
bin_bin 2003-06-07
  • 打赏
  • 举报
回复
不行啊,
键入:F:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Bin>tlbexp D:\Documents and Settings\Administrator\桌面\activex\Connection\bin\Connection.dll
错误提示:
TlbExp error: Unable to locate input assembly: 'D:\Documents'

---------------------------------------------------------------------
D:\>gacutil /i "D:\Documents and Settings\Administrator\桌面\activex\ClassLibrar
y1\bin\ClassLibrary1.dll"

Microsoft (R) .NET Global Assembly Cache Utility. Version 1.0.3705.0
Copyright (C) Microsoft Corporation 1998-2001. All rights reserved.

Failure adding assembly to the cache: Attempt to install an assembly without a s
trong name


为什么啊?????
Montaque 2003-06-07
  • 打赏
  • 举报
回复
需要一些转换,毕竟一个是托管的代码,必须转化为非托管的代码。
参考:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvbdev01/html/vb01i10.asp

http://chs.gotdotnet.com/quickstart/howto/doc/Interop/Interop_Overview.aspx
online 2003-06-07
  • 打赏
  • 举报
回复
如何将简单数据从 .NET 代码传递到 VB6 代码
此示例说明如何从 Visual Basic 6.0 应用程序使用 .NET 对象。可使用相同的技术从任何 COM 应用程序创建该对象,包括用 Visual C++ 6.0、VBScript 或 JScript 生成的应用程序。

在此示例中,一个名为“Test”的非常简单的类实现了 ITest 接口。此接口有一个返回当前时间的方法,可轻易地从 COM 使用。避免接口的显式定义并使用类接口(该类接口包括该类的所有成员以及其基类的所有成员)是可能的。通过应用 DefaultInterface.AutoDual 属性也可实现该技术,但强烈建议您不要这样做,因为它会严重地限制控制类的版本的能力。


namespace TestServer{
public interface ITest{
DateTime GetTime();
}

public class Test : ITest{
DateTime ITest.GetTime(){
return DateTime.Now;
}
}
}


Namespace TestServer
Public Interface ITest
Function GetTime() As Date
End Interface

Public Class Test : Implements ITest
Function GetTime() As Date Implements ITest.GetTime
Return DateTime.Now
End Function
End Class
End Namespace


C# VB


在编译托管代码以创建 TestServer 程序集之后,必须将该程序集安装到全局程序集缓存 (GAC) 中,并将其注册以便从 COM 使用。使用 gacutil.exe 将 TestServer 程序集安装到 GAC 中,并添加所需的注册表项,以便能够从 COM 创建该程序集中的类型。

gacutil /i TestServer.dll

为了从 Visual Basic 6.0 使用 TestServer 程序集中定义的类型,有一个描述该程序集中所包含的类型的类型库会有所帮助。使用 tlbexp.exe 从任何托管程序集生成一个类型库。

tlbexp TestServer.dll

然后可通过 Visual Basic 6.0 中的“项目/引用”对话框向项目添加由 tlbexp.exe 生成的类型库。一旦向项目添加了对类型库的引用,程序集中所定义的类型就能够在 Visual Basic 代码中直接引用了。

Dim dotNETServer As TestServer.ITest
Set dotNETServer = New TestServer.Test

Debug.Print ".NET server returned: " + FormatDateTime(dotNETServer.GetTime, vbGeneralDate)

为了运行应用程序,通常像上面描述的那样将程序集安装到全局程序集缓存中。在开发过程中,较为容易的做法是只将程序集复制到应用程序目录。只有当程序集驻留在应用程序目录中或在全局程序集缓存中时,才能将其定位。

注意:如果您试图从 Visual Basic 6.0 开发环境中运行该应用程序,那么该程序集必须位于与 vb6.exe 相同的目录下,因为 vb6.exe 是承载该程序集的进程。


VB6 测试客户程序

[运行示例] | [查看源代码]



--------------------------------------------------------------------------------
Montaque 2003-06-07
  • 打赏
  • 举报
回复
那个quickstart不是有了吗?
bin_bin 2003-06-07
  • 打赏
  • 举报
回复
如何注册为com???
HELP!!!

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧