簡體   English   中英

無法在C#中加載64位dll錯誤

[英]Unable to load 64-bit dll Error in C#

我有64位c ++ ddl,必須在我的c#應用程序中使用。 我用它像

[DllImport("sampleDll.dll",
    EntryPoint = "sampleFunction",
    CharSet = CharSet.Ansi,
    CallingConvention = CallingConvention.StdCall)]
    public static extern int sampleFunction(char[] ch, int i);

但是當我嘗試運行該應用程序時,它顯示錯誤為

“無法加載DLL'sampleDll.dll':找不到指定的模塊。”

Iam使用64位操作系統。 我嘗試將dll復制到System32文件夾中

但是我仍然遇到相同的錯誤。

請讓我知道此問題的解決方法........

我將假設您的C#進程是64位。 如果是32位進程,則無法加載64位DLL,這就是失敗的原因。

如果將文件復制到system32則將在其中查找64位進程。 如果您復制的文件名為sampleDll.dll ,則程序將找到它。 所以,如果你看到

Unable to load DLL 'sampleDll.dll': The specified module could not be found.

問題不在於無法sampleDll.dll ,而是無法解決其依賴性。 對此的最常見解釋是,您需要安裝sampleDll.dll依賴的C運行時。 請查閱此DLL的文檔,以了解其依賴性。 如果它是您自己創建的DLL,則您知道構建它時使用的內容,並且可以自己識別依賴項。

最后,我要強調的是,您不應將文件復制到system32目錄中。 那屬於系統,您不應觸摸它。 DLL駐留的最佳位置是與加載該DLL的可執行文件相同的目錄。

將您的dll放在部署應用程序的文件夾中。

暫無
暫無

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

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