1

我刚刚下载了 FreeImage 3.15.4 Win32,我正在尝试浏览他们的 C# 示例。我有一台装有 Visual Studio Express 2010 的 64 位 Windows 7 机器,因此我将示例重新编译为 64 位,如此处所述(http://www.sambeauvois.be/blog/2010/05/freeimage-and-x64-projects -是的,你可以/)。为了启动示例应用程序,我还必须更改 FreeImageStaticImports.cs 中“FreeImageLibrary”字符串的名称(生成的 DLL 被命名为 FreeImageNet,而不是像预期的那样为 FreeImage)。

但是,当我运行示例时,我收到“无法在 DLL 'FreeImageNET' 中找到名为 'FreeImage_GetFileTypeU' 的入口点”。每当我调用 FreeImage 函数时都会出错。这些示例引用了包含 DLLImport 语句的库,所以我不太确定这里出了什么问题。有没有人有 FreeImage 和 C# 的经验可以提供一些建议?谢谢!

4

1 回答 1

0

我还必须更改“FreeImageLibrary”字符串的名称

你就是这样陷入困境的。这里涉及两个DLL。FreeImage.dll 是本DLL,它包含 FreeImage_GetFileTypeU 导出。FreeImageNET.dll 是托管类库,其中包含本机 DLL 的包装器,它没有异常消息告诉您的导出。

您应该做的是从源代码重建本机 DLL,以便获得 64 位版本的 FreeImage.dll。那篇博客文章告诉你如何做到这一点。并提供下载,ymmv。

它还必须复制到构建输出文件夹中,以便在运行时可以找到它。一种简单的方法是使用 Project + Add Existing Item 将其添加到您的项目中,并将其“复制到输出目录”属性设置为“如果较新则复制”。

于 2012-11-10T17:47:42.580 回答