2012-10-11 61 views
0

我試圖在Windows 8 Store App中使用EmguCV庫。以前,它對Windows 7桌面應用程序項目工作正常。瞭解DLL加載失敗的原因Windows Store應用程序

我確保我的Windows 8商店應用項目目錄[C:\ Projects \ App2 \ App2 \ bin \ Debug]具有所有必需的DLL文件。

enter image description here

當我直接在微軟的Visual Studio 2012旗艦版通過本地計算機按鈕執行,我得到下面的異常。

enter image description here

異常:拋出該異常: 「無法加載DLL opencv_core240':指定的 模塊找不到(從HRESULT異常:0x8007007E)」 (System.DllNotFoundException)的系統。 DllNotFoundException是 拋出: 「無法加載DLL opencv_core240':指定的模塊 找不到(從HRESULT異常:0x8007007E)」

我的問題是:我如何知道失敗是否是由我的Windows 8商店應用程序無法找到DLL文件?或者,找到的DLL文件是而不是預期的格式由Windows 8商店應用程序? (這些DLL對於Windows 7桌面軟件是可以的)

如果原因是由Windows 8 Store應用程序無法識別的格式造成的,是否重新編譯整個DLL項目(OpenCV源代碼是C++,並且作爲包裝的EmguCV在C#中)Windows Store - >類庫(Windows應用商店應用程序)會有幫助嗎?

+0

這可能是您的應用程序是能夠加載opencv_core240.dll,但這個DLL反過來依賴於其他一些DLL(如VC++運行時DLL),因爲它甚至無法加載OpenCV DLL。更多信息在這個職位:http://stackoverflow.com/questions/12894063/use-old-c-c-library-with-windows-8-metro-app –

回答

1

如果這些DLL適用於Windows 7桌面應用程序,那麼它們將不適用於Windows 8 Metro應用程序,因爲它是完全不同的平臺和API。你不能只加載你的Windows 8 WinRT項目中的任何DLL。

如果你有dll的源代碼,你可以嘗試重新編譯爲Windows運行時組件,但是很可能原始代碼使用的API在WinRT中不可用。

相關問題