0

ImageMagick および MagickNet ライブラリのソースを使用して、 MagickNetクラス ライブラリ (DLL)の作業コピーをコンパイルしようとしています。

作成者のホームページは現在ダウンしているため、MagickNet ソース ファイルのコピーを取得できませんでした。そのため、ファイルと C++ プロジェクト ファイルをここから取得することを余儀なくされました。

hereおよびhereに記載されている指示に従って、「静的マルチスレッド DLL」オプションを使用してプロジェクトを作成し、それをコンパイルしてから、MagickNet プロジェクト ファイルに移動してコンパイルし、すべてのパスが正しいフォルダーを指していることを確認しました。 .

それでも、コンパイル時にこのエラーが発生し続けます。

CORE_RL_magick_.lib(nt-base.obj) : error LNK2005: _DllMain@12 already defined in MSVCRT.lib(dllmain.obj)

他にも 371 個のエラーが表示されます。これらはすべて「未解決の外部シンボル xxxxxxxx」に関連しており、最後の 372 番目のエラーは「195 個の未解決の外部シンボル」があることを示しています。

ImageMagick ソリューションの CORE_magick プロジェクトの nt-base.c ソース ファイルの DllMain 宣言をコメント アウトすることで、上記の DllMain エラーを解決できましたが、他の 372 個の「未解決の外部」エラーがまだ残っています。

私は同様の問題を抱えている人を (Google) で検索し、作成者が 100% 動作するプリコンパイル済み MagickNet DLL のダウンロードを提供したと言う人もいますが、(前述したように) 彼のホームページにはアクセスできないようです今。

私は現在、これらの解決策のいずれかを探しています:

  1. 私は C++ にまったく慣れていないため、自分の側で間違いを犯している可能性があるため、コンパイルの問題の解決策として、
  2. ImageMagick の最新バージョンで正しくコンパイルされることが 100% 確認されている別の MagickNet ソース ファイル/プロジェクト zip へのリンク、
  3. 作成者のホームページからコピーを保持している場合は、MagickNet DLL の 100% 動作するプリコンパイル済みコピーへのリンク。ImageMagick ライブラリも含まれているため、約 3MB になるはずです。

ImageMagick の画像の操作と変換の機能と、MagickNet の使いやすさがどうしても必要なので、これらのソリューションのいずれかがあれば本当にありがたいです。さらに情報が必要な場合は、追加の詳細を提供できます。

また、Visual Studio 2008 を使用してソース ファイルをコンパイルしていますが、提供されたプロジェクトはまったく問題なく変換されます。

4

3 に答える 3

1

私はまったく同じ問題を抱えていました.Bromankoの答えはそれを解決しました.1つのマイナーな追加で:

次の行をコメントアウトすることに加えて、imagemagick の magick-config.h で:

define MAGICKCORE_X11_DELEGATE

...次の行もコメントアウトする必要があります。

define ProvideDllMain

その後、ガスで調理します。

ありがとうブロマンコ…

于 2010-09-06T04:54:21.480 に答える
0

msvcrt および MFC ライブラリのリンク順序が原因で、リンカの問題が発生しています (Google 検索に基づいて推測すると正しいようです)。MSDN のこの記事には解決策があるようですが、基本的な問題は同じであるため、オプションも似ているはずです。

于 2009-04-07T19:07:21.080 に答える