在调试模式下运行时,我收到以下错误消息(VS2010)我的C#WPF应用程序:
"无法加载DLL' VCECLB.dll':找不到指定的模块。 (HRESULT的例外情况:0x8007007E)"
发生此错误的代码是(请参阅hDevEnum):
namespace Imperx.FLExGrabber
{
public class Enumerator:IEnumerator
{
private IntPtr hDevEnum;
VCECLB_EnumData enumData;
/// Default constructor
public Enumerator()
{
enumData.cbSize = (UInt32)Marshal.SizeOf(enumData);
// Open enumerator handle
hDevEnum = NativeFunctions.VCECLB_EnumInit(); <<--- Error message here!!!
}
/// Destructor
~Enumerator()
{
NativeFunctions.VCECLB_EnumClose(hDevEnum);
}
}
}
从使用Windows窗体应用程序的现有项目中,它运行完美。现在我需要将此解决方案转移到WPF应用程序中。因此我使用相同的机器(Win7 / 64ibt)与相同的VS2010。平台目标是X64。
问题:我需要将VCECLB.dll文件添加到项目中?我无法在引用下添加它,因此我将其放入文件夹&#34; ... \ bin \ x64 \ Release&#34; - 但没有成功。
当我使用依赖walker检查VCECLB.dll时,我得到以下信息:
问号是否意味着那些dll缺失?如果是这样,为什么我可以使用相同的VCECLB.dll运行Windows窗体项目?
有人知道如何解决这个问题吗? 提前致谢
答案 0 :(得分:3)
导致此类错误的原因有两个:
通过将DLL放在与可执行文件相同的目录中来解决问题1。通过确保安装所有依赖项来解决问题2。通常,这涉及部署DLL所依赖的MSVC运行时。
答案 1 :(得分:1)
您可以将VCECLB.dll放在解决方案的任何位置(例如Drag and amp; Drop中的root用户)
然后,添加文件后,点击文件右侧,选择属性
在高级三:
在构建操作
始终复制 复制到输出目录
获得类似下面的内容: