VB .NET 制作的DLL无法被 .NET 程序引用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB .NET 制作的DLL无法被 .NET 程序引用相关的知识,希望对你有一定的参考价值。

先用 VB .NET 制作了 DLL 。
代码:
Imports System.Drawing

Public Interface ICustomerInfo
Function Getpicture(ByVal Bname As String) As Bitmap
End Interface

Public Class ResClass

Implements ICustomerInfo

Const Updateimage As String = "UpdateButton"

Function Getpicture(ByVal Bname As String) As System.Drawing.Bitmap Implements ICustomerInfo.Getpicture
Select Case Bname
Case Updateimage
Return (My.Resources.Up.ToBitmap)
Case Else
Return (Nothing)
End Select
End Function

End Class

生成dll文件(XXX.dll)。
之后,用其他的VB .NET程序引用那个XXX.dll,并声明函数:
Declare Auto Function Getpicture Lib "XXX.dll" (ByVal s As String) As Bitmap
发生错误,提示:
无法在“XXX.dll”中找到名为“Getpicture”的入口点。
我只希望用.NET方式引用那个dll,如果可能的话,尽量避免转化成com。
请问,这样的问题怎么解决?应该怎样修改?
可能是我太菜了……
更直白的问吧:
如何使用VS2008制作dll被其他的VS2008工程引用?请详细描述~
就算设成public也不行。

你没加namespace,加一个命名空间 

namespace xxx 

 

//your code 

 

最好用VS工程里的添加引用直接选中这个dll,然后程序里写<namespace> 就可以访问其中的内容了。 

右键点击你的工程名称,选添加引用,选浏览,找到你的dll,确定。 

让后在你的代码里上面协商using 你的命名空间,就可以放心使用了。 

还可以用System.Reflection Assembly.LoadFrom动态加载一个dll也可以。

参考技术A 你引用了xxx.dll的就不用declare...了。
只要声明 Imports xxx
声明后就可以创建实例了。
参考技术B 可以制作个通用的dll文件, 具体方法可以去下个教程看看!
迅雷搜索:VB 通用dll
http://58.251.57.206/down1?cid=8A2946B58C8BFF6DC5F3F982927DE3CF9F94F686&t=2&fmt=&usrinput=vb%20通用dll&dt=2002000
参考技术C LZ,我发现...你貌似是因为没有将你要引用的那个Getpicture方法设为Public造成的...所以程序找不到这个方法 参考技术D 本来就不能吧!

VB6 使用 .Net dll。无法读取 app.config

【中文标题】VB6 使用 .Net dll。无法读取 app.config【英文标题】:VB6 using a .Net dll. Cannot read app.confg 【发布时间】:2014-12-11 20:02:33 【问题描述】:

我有一个用 c# 编写的 DLL,它运行良好(它所做的并不重要)。

然后我尝试从 VB6 调用。

再次,一切都很好。

当我更改 c# 代码以使用 app.config 存储配置数据时,VB6 代码失败。

现在我知道 .Net 中的 DLL 会从调用应用程序中查找 app.config,但 VB6 没有。

这是我必须忍受的事情,还是有其他方法?

【问题讨论】:

equivalent of app.config for library (dll)的可能重复 谢谢你,但我的问题是 VB6 调用 DLL。 DLL 正在寻找 app.config,但 VB6 没有 app.config 文件。我确实尝试将配置文件复制到 VB6 目录中,但它仍然不起作用。 是什么让您认为 DLL 正在寻找 app.config?它不是。它正在寻找配置文件。那不是一回事。 【参考方案1】:

这是在黑暗中的尝试,我这里没有所有东西可供我测试,但是 app.config 文件通常会在构建时重命名为 MyApp.exe.config您的 MyApp.exe 项目。 VB6 应用程序正在调用 dll(假设它是 MyVbApp.exe)尝试将部署目录中的 .config 文件重命名为 MyVbApp.exe.config。

【讨论】:

用加载 .NET .dll 并将配置文件重命名为 VB6Application.exe.config 的 VB6 .exe 进行了尝试。 是的,我记得这就是您必须使用 VB6 应用程序执行此操作的方式。我通常不在笔记本电脑上保留 VB6。

以上是关于VB .NET 制作的DLL无法被 .NET 程序引用的主要内容,如果未能解决你的问题,请参考以下文章

vb.net引用Dll的问题

无法在 VB.NET 中使用带有来自 Visual C++ DLL 的指针参数的函数

VB6 使用 .Net dll。无法读取 app.config

创建 VB.NET COM DLL

如何使用 VB.Net 自动化 Microfocus Rumba

C# Dll 注入器、VB.Net Dll 注入器