2

HunspellをWin32コンソールアプリケーションで動作させることができた後、同じソリューションのMFCアプリケーションで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にあり、適切に参照されています。

MFCアプリケーションを次のようにセットアップしました。

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

この質問をできるだけ短くするために、#includeを入れてhunspelldd.hMainfrm.cppダイアログの設定と呼び出しを省略することにしました。それにもかかわらず、前述のエラーメッセージを生成するプロジェクトを説明どおりにセットアップしました。

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

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

4

2 に答える 2

4

replist.hxxのクラス宣言の前に「#undefnear」を追加します

于 2012-05-27T20:07:41.063 に答える
0

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

于 2012-03-16T14:47:19.040 に答える