[英]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.