簡體   English   中英

EmguCV 64位構建運行時錯誤

[英]EmguCV 64-bit build runtime error

我遇到了在W7 / x64 OS上使用.net 4.0和VS2010將現有的32位EmguCV( 2.3版 )構建為64位的問題。 我已經購買了商業許可證(如果有關系的話),並從收據中提供的鏈接下載了該許可證。

錯誤是

System.TypeInitializationException was unhandled
 Message=The type initializer for 'Emgu.CV.CvInvoke' threw an exception.
 Source=Emgu.CV
 TypeName=Emgu.CV.CvInvoke

我按照本文提供的說明進行操作。 實際上,我使用了本文中的示例項目,並且使用V2.2可以很好地構建它們,但是當我替換為V2.3二進制文件(emgu和opencv)時,就會遇到錯誤。

有誰成功建立了Emgu( 2.3.x版 )x64項目? 請提供一些指導。

出現此錯誤的原因(其他人應該遇到相同的問題)是,即使輸出“ bin”目錄中存在程序,程序也無法訪問opencv_imgproc231.dll或opencv_core231.dll。

有兩種解決方案:

  1. 將它們添加到項目中,並將其屬性設置為copy always因為它們是EMGU的兩個關鍵文件。

  2. 如果第1步不起作用,請用新副本替換bin文件夾中的當前密鑰文件。

如果這兩種方法均失敗,則說明構建可能存在問題,因此請從Sourceforge下載EMGU的新副本,然后重試。 稍后將在技術文章中包含該錯誤,以提供有關如何解決該錯誤的更清晰的說明。

克里斯,干杯

無需將它們添加到項目中; VS不會讓你。 只需在public static partial class CvInvoke打開FaceRecognizer.cs並更改:

[DllImport(CvInvoke.EXTERN_LIBRARY, CallingConvention = CvInvoke.CvCallingConvention)] 

至:

[DllImport(Emgu.CV.CvInvoke.EXTERN_LIBRARY, CallingConvention = Emgu.CV.CvInvoke.CvCallingConvention)] 

確保更改所有它們。

首先以這種方式進行測試:從emgu cv installaiton目錄中打開一個示例項目並運行它。 例如,打開hello world示例並嘗試運行它。 如果示例項目運行順利,則說明安裝正確。

對於emgu簡歷樣本項目,在該項目生成設置輸出路徑選項的值設置為” .. \\ .. \\ bin'的 要解決您的項目問題,請在Visual Studio中打開項目,並將“ 輸出路徑”選項的值設置為'C:\\ Emgu \\ emgucv 2.9 \\ bin' 嘗試運行該項目。 它必須成功運行。

現在,將Output Path選項的值重新設置為bin \\ Debug \\ 然后,使用ADD- > Existing Item菜單將'C:\\ Emgu \\ emgucv 2.9 \\ bin'文件夾中的所有DLL文件添加到您的項目中。 同樣,使用ADD- > Existing Item菜單將'C:\\ Emgu \\ emgucv 2.9 \\ bin \\ x64'文件夾中的所有DLL文件添加到您的項目中。 現在,轉到屬性窗口,然后將所有dll文件的“ 復制到輸出目錄”選項設置為“始終復制” 最后,在“配置管理器”窗口中,為x64平台創建一個新配置。

祝好運

暫無
暫無

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

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