2009-06-04 152 views
1

我發現堆棧溢出是我們所有澄清的最佳組之一。我用C編寫的本地dll。我使用VC++(VS 2008)編譯了proj,使用我的C#應用​​程序,我通過Dllimport調用了dll函數。問題是它無法加載DLL。它說無法加載DLL。dllimport無法加載DLL

我已經編譯到平臺從x86到x64我的DLL和我的應用程序。如果你們幫我解決這個問題,這將非常好。

是否有任何可能檢查爲什麼沒有加載dll。

在此先感謝。

回答

1

嘗試使用sysinternal的進程監視器來查看您的應用程序正在從哪裏加載DLL。

LoadLibrary的Win32文檔鏈接到details關於它如何搜索dll。

1

我遇到了這方面的問題。我有一個C++ DLL作爲一個硬件的接口,我需要從C#調用。但是,如果沒有插入硬件,它將導致DllImport調用失敗。這是因爲DLL初始化函數返回失敗,所以C#只是說它無法加載DLL,它可能不是與該DLL是。

檢查您是否在您的C代碼中設置DLL時導致某種錯誤。

0

Dependency Walker是一個很好的工具來分析一個DLL用來加載的東西。 對於本機可執行文件,它同樣可以加載exe文件並使用「Profile」菜單項 甚至可以顯示使用延遲加載加載的dll,如果 只是加載了dll,將不會顯示。