我在下面收到此异常
Unable to load DLL 'cvextern': The specified module could not be found.
当调试器到达下面的这一行
img = new Image<Bgr, byte>(bitmapImage);
我在创建为库的组件项目中使用 EMGU CV 3.2.0.2721 。
在谷歌搜索时,我在下面找到了这个线程,但是我试图将CPU更改为X86,也将其更改为64,这两个都不起作用。我看到cvextern不在C#项目的“参考”中。我试图添加该cvextern dll(我尝试过同时使用64和x86),它说它不能添加,因为它不是C#dll。
unable to load cvextern in a c# project
请指导我。
答案 0 :(得分:0)
cvextern dll是本机dll,无法将其添加到托管项目中。 因此,无需将其添加为引用,只需将其复制到bin文件夹即可使用,因为emgu dll正在搜索它。
答案 1 :(得分:0)
不确定这是否是您的情况,但是我遇到的是以下情况: 被引用的托管DLL(例如emgu.cv.world)在引用属性中设置为“本地复制”,因为托管的dll使用的是非托管的,因此无法再找到它。所以我最终要做的是以下几点: 将“复制本地”设置为false并将以下内容添加到您的app.config:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="Emgu;Emgu\x86;Emgu\x64"/>
</assemblyBinding>
</runtime>
将Emgu和Emgu ...目录更改为与您的情况相关的目录。 另外,Emgu目录必须位于您的产品目录中,例如e
MyAwesomeProgram
-myprog.exe
-Emgu.CV.World.dll
-Emgu
--x64
---cvextern.dll
--x86
---cvextern.dll