[英]64 bit dll in 64 bit process Vista fails - Unable to load DLL 'dllname': The specified module could not be found
[英]The specified module could not be found - 64 bit dll
當我嘗試使用VC ++(VS2008)進行編譯,以通過更改其編譯的平台將dll轉換為x64時,我使用32位dll使用Native C編寫。 但是,當我嘗試從也是“ x64”平台的C#應用程序訪問dll時,無法加載dll。 我使用Dllimport將dll與我的應用程序鏈接。
我在Vista中使用的操作系統,但是我無法從我的應用程序調用at dll函數,它說無法加載dll。
有什么辦法可以解決此問題。
期待您的幫助。
問候,嘎
我的猜測是依賴關系,您的新DLL可能缺少一些所需的64位DLL。
嘗試使用工具“ dependency walker”(類似於ldd的獲勝工具,www.dependencywalker.com),找出與哪些內容有什么聯系。 可能會有所幫助。
檢查要在其中構建dll的不同版本(x86 / x64)的位置。
最簡單的方法是將64位dll的目標目錄設置為目標文件夾的“ x64”子目錄。 在64位解決方案配置中,將C#的目標目錄也設置為“ x64”目錄。
這將確保每個平台的exe嘗試加載正確的dll。
謝謝您幫忙。
當我將dll放在C:\\ Windows \\ System32 \\下時,該錯誤已解決。
謝謝Ga
我曾經有過這樣的問題。 我有一個C ++ DLL,它充當到硬件的接口,需要從C#調用。 但是,如果未插入硬件,它將導致DllImport調用失敗。這是因為DLL初始化函數返回了失敗,所以C#只是說它無法加載DLL,這可能與在何處無關DLL是。
在C代碼中設置DLL時,請檢查是否沒有引起某種錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.