![](/img/trans.png)
[英]Missing assembely reference error after adding Facebook.dll using c# asp.net
[英]How to call functions after adding DLL reference to a C# asp.net project
如果 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# 中如何工作? .
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.