最简单的解决方案是使用FreeImageNET nuget 包。警告:我没有测试过这个;我不知道它如何处理 32 位和 64 位。
您可以在解决方案资源管理器中执行此操作 - "Manage NuGet packages for Solution..."
.
以下说明适用于希望自己构建 .NET 包装器的人。
澄清伯恩哈德的回答:
要在 64 位项目中使用 FreeImage,仅将“.NET-wrapper”编译为 64 位是不够的FreeImageNet.dll
。
还必须确保您使用的是 64 位版本的FreeImage.dll
, FreeImage\Dist\x64\FreeImage.dll
.
请注意,这不是“任何 CPU”解决方案。将主 exe 的项目平台设置为“x64”。
要构建FreeImageNet.dll
64 位(在 中测试VS 2019 Community
):
- 从http://freeimage.sourceforge.net/download.html下载最新
"FreeImage DLL" [WIN32/WIN64]
的存档。您不需要“源代码分发”,除非您想构建底层 C++ dll。在我写这篇文章时,您下载的文件是.FreeImage3180Win32Win64.zip
FreeImage\Wrapper\FreeImage.NET\cs\FreeImage.NET.sln
在VS中打开;让它将项目格式转换为 2019。
- 卸载
UnitTest project
(以避免由于缺少 NUnit 包而导致的错误)。
- 将构建配置/平台设置为
"x64"
.
- 打开库/属性/构建 - 设置
"Treat warnings as errors"
为"None"
. 注意:必须为"Platform"
您构建的每个设置。因此,如果您忘记先设置 Build Platform,在将 Build Platform 设置为 x64 之后,请验证这仍然是“None”。
- 右键单击库项目 /
Build
。
- 如果您想在调试应用程序时使用带有 for 符号的调试版本,请同时执行
Debug
并构建配置。您需要用于应用程序发布版本的 dll。Release
FreeImageNET.pdb
Release
- 任何引用此库的 .exe 也必须引用
FreeImage\Dist\x64\FreeImage.dll
.
或者,验证您是否可以在该 .sln 中构建和运行示例 1:
- 将配置设置为
Debug + x64
;启动项目Sample 1
。
- 建造。如果你现在运行,它不会找到
FreeImage.dll
.
- 查找
bin
现在包含的文件夹Sample01.exe
。这还应该包含FreeImageNet.dll
您之前构建的副本。
- 您需要底层 C++ dll 的 x64 版本。复制
FreeImage\Dist\x64\FreeImage.dll
到您找到的文件夹中Sample01.exe
。
Program / Main
在 Sample 的方法开始处设置断点。逐步检查,在控制台窗口中查找任何错误消息。最重要的是,确保FreeImage.IsAvailable()
检查成功——不要说“FreeImage.dll 似乎丢失了”。
现在您可以使用自己的应用程序重复此操作:
- 将您的主 exe 项目的配置设置为
Debug + x64
.
- 建造。以确保您知道要构建到哪个 bin 文件夹。
- 将
FreeImage.dll
,FreeImageNET.dll
和复制FreeImageNET.pdb
到包含您的.exe
.
- [可选] 添加
FreeImage\Wrapper\FreeImage.NET\cs\Library\Library.csproj
到您的解决方案中。这是VS 2019早前为你打造的“2019格式”版本。这使得调试包装源变得容易。
- 现在在您的 exe 项目中引用这两个 dll,并像往常一样调试您的项目。(或将
Library
项目作为依赖项引用,加上FreeImage.dll
.)
注意:将这些文件直接复制到您的 bin 文件夹是执行此操作的“肮脏”方式。是验证您可以使用 dll 构建和运行的最简单方法。更好的是让这些 dll 成为源代码控制下的“源”的一部分,作为构建过程的一部分复制到 bin 文件夹。谷歌其他地方的说明。