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 の名前は、サンプルが期待していた FreeImage ではなく、FreeImageNet でした)。

しかし、サンプルを実行すると、「DLL 'FreeImageNET' で 'FreeImage_GetFileTypeU' という名前のエントリ ポイントが見つかりません」というメッセージが表示されます。FreeImage 関数を呼び出すたびにエラーが発生します。サンプルは DLLImport ステートメントを含むライブラリを参照しているため、ここで何が壊れているのかよくわかりません。アドバイスを提供できる FreeImage と C# の経験がある人はいますか? ありがとう!

4

1 に答える 1

0

「FreeImageLibrary」文字列の名前も変更する必要がありました

それがあなたがこのトラブルに巻き込まれた方法です。ここには2 つのDLL が含まれています。FreeImage.dll はネイティブDLL であり、FreeImage_GetFileTypeU エクスポートが含まれています。FreeImageNET.dll は、ネイティブ DLL のラッパーを含むマネージクラス ライブラリです。例外メッセージに示されているように、そのエクスポートはありません。

64 ビット バージョンの FreeImage.dll を入手できるように、ネイティブ DLL をソースから再構築する必要がありました。そのブログ投稿では、その方法を説明しました。ダウンロード、ymmv を提供しました。

実行時に見つけられるように、ビルド出力フォルダーにもコピーする必要があります。これを行う簡単な方法は、[プロジェクト] + [既存の項目を追加] を使用してプロジェクトに追加し、[出力ディレクトリにコピー] プロパティを [新しい場合はコピー] に設定することです。

于 2012-11-10T17:47:42.580 に答える