我已经下载了FreeImage的最新编译版本,然后构建FreeImageNet包装器。将FreeImage.dll和FreeImageNet.dll放在与我的可执行文件(示例代码)相同的文件夹中。但每次我运行它,它都会说freeimage.dll不见了。我修改了FreeImageWrapper.cs上的代码并删除了异常处理程序
public static bool IsAvailable()
{
/*try
{*/
// Call a static fast executing function
Version nativeVersion = new Version(GetVersion());
Version wrapperVersion = GetWrapperVersion();
// No exception thrown, the library seems to be present
return
(nativeVersion.Major > wrapperVersion.Major) ||
((nativeVersion.Major == wrapperVersion.Major) && (nativeVersion.Minor > wrapperVersion.Minor)) ||
((nativeVersion.Major == wrapperVersion.Major) && (nativeVersion.Minor == wrapperVersion.Minor) && (nativeVersion.Build >= wrapperVersion.Build));
}
/*catch (DllNotFoundException)
{
return false;
}
catch (EntryPointNotFoundException)
{
return false;
}
catch (BadImageFormatException)
{
return false;
}*/
}它总是抛出BadImageFormatException。问题似乎出在本地动态链接库(freeimage.dll)上?
我该如何修复它?
提前谢谢。
我正在使用Visual C# 2010学习版
发布于 2012-07-11 19:55:58
如果您尝试将非托管32位dll加载到64位进程中,则通常会发生这种情况。要解决此问题,请打开启动项目的属性,并在Built PlatformTarget下将类型从Any CPU更改为x86。
https://stackoverflow.com/questions/11432041
复制相似问题