我遇到了一个问题,我可以告诉你我需要帮助。我有一个lib,有一些我需要的方法。但是当我添加它作为参考时,抛出这个错误:
无法添加lib.dll。请确保该文件是 可访问的,并且它是有效的assambly或COM组件。
我可以告诉你,我不知道在哪种语言中写,但事实并非如此。我在其中一个项目中看到有人使用Visual Basic中的保留字Lib和同一个Lib,它对他来说效果很好。他可以使用lib的资源,但问题是他是用 Visual Basic 开发的,而我对Visual Basic 一无所知,只是 C#。
这就是他所做的:
Public Function Amethod Lib "theDLLfile" (ByVal s as String) As String...
问题是:那能做到吗?如何参考和使用它的方法? Lib字的作用是什么以及如何使用它?
我真的需要帮助。
LITTLE UPDATE:
在引用DLL时,url可以是绝对的还是相对的?
答案 0 :(得分:3)
这是在VB中执行DllImport的旧方法。你也忘记了“声明”。关键词。 VB代码应如下所示:
Public Declare Function Amethod Lib "theDLLfile" (ByVal s as String) As String
C#中的等价物是:
[System.Runtime.InteropServices.DllImport("theDLLfile")]
public static extern string Amethod(string s);
现在用VB完成的常用方法是:
<System.Runtime.InteropServices.DllImport("theDLLfile")>
Public Shared Function Amethod(ByVal s As String) As String
End Function
答案 1 :(得分:2)
听起来这个库是本机库(即非托管代码,而不是.NET)。您将需要P / Invoke才能调用它。
您可以找到对此here的基本介绍。
您需要一些其他信息(可能来自您同事的VB项目)才能正确声明要调用的库函数。
答案 2 :(得分:2)
使用[DllImport]
示例:
[DllImport("DllFile.dll", EntryPoint = "dllFunctionName"]
public static extern string functionName (string s);