2012-03-16 7 views
2

After I managed to get Hunspell working with a Win32 console application、Hunspellを同じソリューションのMFCアプリケーションで使用したいと思います。 MFCアプリケーションをコンパイルしようとすると、次のエラーが発生します。C++ - HunspellをMFCで使用

spellcheck\hunspell-src\hunspell\replist.hxx(23): error C2062: type 'const char' unexpected 
spellcheck\hunspell-src\hunspell\replist.hxx(23): error C2238: unexpected token(s) preceding ';' 

ソリューションに関するいくつかの情報:

  • 溶液がスペルチェックと呼ばれています。
  • Hunspellのソースファイルは、spellcheck\hunspell-src\hunspellおよびspellcheck\hunspell-src\win_apiに配置されています。
  • プロジェクトlibhunspellがインポートされ、エラーなしでコンパイルされます。
  • ソリューションのコンソールアプリケーションは同じhunspell dll/sourceファイルを使用し、にはエラーなしがあります。
  • コンソールアプリケーションは、フォルダHunSpell-SrcHunSpell-Dicは、プロジェクトフォルダではなく、ソリューションフォルダspellcheckに位置し、適切に参照されていないthis thread
  • に応じて設定されています。

私は次のようにMFCアプリケーションのセットアップを持っている:

  1. MFC2と呼ばれるソリューションにプロジェクトとして新しいMFCアプリケーション(SDI)を追加しました。
  2. libhunspellからMFC2への参照をプロジェクトに追加しました。 Mainfrm.cpp#include MainFrm.h..\hunspell-src\win_api\Debug_dll\libhunspell;%(AdditionalLibraryDirectories)(コンソールアプリケーションと同じ)
  3. 追加さ#include "../HunSpell-Src/win_api/hunspelldll.h"
  4. Project > Properties > Configuration Properties > Linker > General > Additional Library Directoriesに設定されている(コンソールアプリケーションと同じ)..\hunspell-src\hunspell;%(AdditionalIncludeDirectories)
  5. Project > Properties > Configuration Properties > C++ > General > Additional Include Directoriesがに設定されています。

私はMainfrm.cpphunspelldd.hのの#includeを入れて、ダイアログを設定し、可能な限り短く、この質問を保つためにそれを呼び出す省略することにしました。それにもかかわらず、上記のようなエラーメッセージを生成するようなプロジェクトをセットアップしました。

コンソールアプリケーションが正常にコンパイルされるため、私はMFC固有の問題が原因であると想定しています。

ありがとうございました。

答えて

4

replist.hxxのクラス宣言の前に "#undef near"を追加します

+0

これはコンパイルされますが、いくつかの警告があります。ありがとう。 –

+0

私のために働いた。 @Igor:それがなぜ必要なのかを説明するのに気をつけますか? – Jacob

+0

WinAPI minwindef.hに "#define near"があり、その範囲に表示されます。このため、プリプロセッサはエラーを生成します。 – Igor

0

私は、replist.hxxの直前のインクルードファイルでエラーを探します。おそらく、クラス定義の最後のセミコロンがありません。

+0

私はそれを調べて何も見つかりませんでした。そのような単純な構文エラーが原因であれば、libhunspellはコンパイルすることもできますか? –

関連する問題