如果 MathLibrary.dll 是 .NET 程序集,您可以通过以下方式解决问题:
但是,从表面上看,MathLibrary.dll 不是 .NET 程序集。它似乎是一个标准的 Win32 DLL(我可以从 的使用中看出declspec(dllexport)
),这意味着它包含非托管代码和一系列符号和入口点(与公开类型的 .NET 程序集 DLL 相反)。如果是这种情况,设置参考将无济于事。使用 DLL 需要一个特殊的过程,因为它是非托管的。
要了解如何从 .NET 使用 ummanaged DLL,请参阅此文章。
重要的一点是:
使用 DllImportAttribute 来标识 DLL 和函数。使用 static 和 extern 修饰符标记方法。
您的 C# 代码可能如下所示:
namespace WebApplication1
{
class ExternalFunctions
{
[DllImport("MathLibrary.dll")]
public static extern bool fibonacci_next();
}
class Program
{
static void Main()
{
//call it
var foo = ExternalFunctions.fibonacci_next();
}
}
}
如果您遇到上述问题,您可能需要修改 MathLibrary.dll 导出其符号的方式(您必须使用extern "C"
)。
另请参阅如何Extern
在 C#中工作?.
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句