我在VB.Net中创建了一个DLL。我知道在C中你可以导出某些函数,以允许它们对使用库的外部文件可见
但是,我的VB.Net库无法使用。例如,在另一个程序中,在添加了我的DLL之后它就找不到任何函数(我试图让这些函数公开但不会改变很多)。
有什么理由?它是VB.Net的东西吗?
编辑:
这里有一笔交易:我在VB中编写一个DLL,它应该允许另一个部门运行测试(Layer就像这样:SQL SERVER - > DLL - >测试应用程序)。我不知道其他部门是如何进行测试的,但我希望这是一段代码片段,可以解释我的问题:
Public Class duct
//Only the Info should be be accessible from other application(s)
Public lt as String
Private database As String
Public Function Info(ByVal serialNumber As String) As String
Dim conn As SqlConnection
conn = connectionPd()
Return lt(conn, serialNumber)
End Function
Private Function connect() As SqlConnection
Dim _in As StreamReader
Dim conn As New SqlConnection
Dim str As String = String.Empty
Dim servername As String = String.Empty
Try
_in = New StreamReader("file path here")
While _in.Peek >= 0
str = _in.ReadLine
If str.Contains("someString") Then
Dim temp(), temp1() As String
temp = str.Split("=")
temp1 = temp(1).Split(Chr(34))
servername = temp1(1)
ElseIf str.Contains("SomeString") Then
Dim temp(), temp1() As String
temp = str.Split("=")
temp1 = temp(1).Split(Chr(34))
database = temp1(1)
End If
End While
Catch ex As Exception
MsgBox(ex.ToString())
End Try
Try
conn = New SqlConnection("Server = " & servername & ";" & " Trusted_Connection=yes")
conn.Open()
Return conn
Catch msg As Exception
MsgBox(msg.ToString())
Return conn
End Try
End Function
Private Function connectionPd() As SqlConnection
Dim conn As SqlConnection
conn = connect()
Return conn
End Function
End Class
答案 0 :(得分:1)
听起来有人试图用C或C ++或其他一些母语调用VB .NET DLL。这不起作用。托管你需要经历的CLR或使用C ++ / CLR来编写桥接DLL是一件很重要的事情。
答案 1 :(得分:0)
我认为您正在寻找的是如何使您的.Net DLL COM可见。
只有当应用程序运行用于构建DLL的相同版本的.NET Framework时,使用VB .NET创建的DLL才是可执行的。
由于C / C ++不使用.Net Framework,因此无法加载。因此,您必须使此DLL COM可见。
以下是谷歌搜索的一些链接:
Turn a simple C# DLL into a COM interop component
我希望这会指引你走向正确的方向。