簡體   English   中英

在 C# 中使用 C++ DLL

[英]Using a c++ dll in c#

如果我有這樣的 C# 代碼

   public const string CppFunctionsDLL = @"..\..\..\Release\CplusplusCode.dll";

    [DllImport(CppFunctionsDLL, CallingConvention = CallingConvention.Cdecl)]
    static extern int GetData(out IntPtr data, byte[] dataFromCard);

構建解決方案后..然后在另一台機器上運行可執行文件.. 當調用GetData時,實際的 c++ dll 是否必須存在於運行可執行文件的機器上? 還是在運行解決方案構建時加載了所有內容..?

本質上.. 我如何確保當可執行文件在用戶機器上運行時.. c++ dll 存在並且我可以在代碼中引用它?

當調用 GetData 時,實際的 c++ dll 是否必須存在於運行可執行文件的機器上?

是的。 DllImport通過在運行時使用LoadLibrary()GetProcAddress()在內部工作。 當調用 C# 函數時,加載引用的 DLL,然后調用引用的 DLL 函數,根據需要來回封送參數數據。

還是在運行解決方案構建時加載了所有內容..?

不。

本質上.. 我如何確保當可執行文件在用戶機器上運行時.. c++ dll 存在並且我可以在代碼中引用它?

您必須將 DLL 與構建的 EXE 一起分發和安裝。 你如何做到這一點完全取決於你。 有許多方法可以捆綁和分發多文件應用程序。 例如,通過Windows Installer MSI 包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM