C# 如何在C中使用像Visual Basic这样的库#

C# 如何在C中使用像Visual Basic这样的库#,c#,vb.net,dll,C#,Vb.net,Dll,我有个问题,我可以告诉你我需要帮助。我有一个库,它有一些我需要的方法。但当我将其添加为引用时,抛出以下错误: 无法添加lib.dll。请确保文件是正确的 可访问,并且它是有效的assambly或COM组件 我可以告诉你,我不知道用哪种语言写的,但事实并非如此。在我工作的一个项目中,我看到有人在VisualBasic中使用了相同的库中的保留字,这对他来说很好。他可以使用lib的资源,但问题是他在Visual Basic中开发了它,而我对Visual Basic一无所知,只知道C 他就是这样做的:

我有个问题,我可以告诉你我需要帮助。我有一个库,它有一些我需要的方法。但当我将其添加为引用时,抛出以下错误:

无法添加lib.dll。请确保文件是正确的 可访问,并且它是有效的assambly或COM组件

我可以告诉你,我不知道用哪种语言写的,但事实并非如此。在我工作的一个项目中,我看到有人在VisualBasic中使用了相同的库中的保留字,这对他来说很好。他可以使用lib的资源,但问题是他在Visual Basic中开发了它,而我对Visual Basic一无所知,只知道C

他就是这样做的:

Public Function Amethod Lib "theDLLfile" (ByVal s as String) As String...
问题是:这能做到吗?如何借鉴和使用其方法?Lib单词的作用是什么?如何使用它

我真的需要帮助

小更新:


引用DLL时,url可以是绝对的,也可以是相对的?

这听起来像是一个本机库(即非托管代码,而不是.NET)。您需要P/Invoke来调用它

你可以找到这方面的基本介绍


您需要一些附加信息(可能来自同事的VB项目)才能正确声明要调用的库函数。

使用
[dlliport]

例如:

[DllImport("DllFile.dll", EntryPoint = "dllFunctionName"]
public static extern string functionName (string s);

这是在VB中执行DllImport的旧方法。您还忘记了“Declare”关键字。VB代码应该如下所示:

Public Declare Function Amethod Lib "theDLLfile" (ByVal s as String) As String
C#中的等价物是:

现在在VB中执行此操作的常用方法是:

<System.Runtime.InteropServices.DllImport("theDLLfile")>
Public Shared Function Amethod(ByVal s As String) As String
End Function

公共共享函数Amethod(ByVal s作为字符串)作为字符串
端函数

这是P/Invoke。查看
[DllImport]
属性。您将需要完整的本机签名。@SLaks它具有相同的功能???方法名称不能包含
s。请用您的方法名称替换“Function”。(不要写“),入口点是dll中您喜欢使用的函数名。
<System.Runtime.InteropServices.DllImport("theDLLfile")>
Public Shared Function Amethod(ByVal s As String) As String
End Function