私の目標は、HunSpell を使用してユーザーが入力した単語のスペル チェックを行う単純な Win32 コンソール アプリケーションを作成することです。Visual Studio 2008 および HunSpell 1.2.1 用のこの codeproject チュートリアルに従おうとしました。
私は自分で書くつもりなので、提供されたコードを使用したくありません。さらに、静的ライブラリとしてではなく、DLL として HunSpell を追加したいと考えています。
私が取った手順は次のとおりです。
- myproject という名前の Win32 コンソール (空の) プロジェクトを作成しました。
- SourceForge.org から HunSpell 1.3.2 をダウンロードしました。
- hunspell -1.3.2\src\ hunspellとwin_apiをmyproject\myproject\HunSpell-Srcにコピー
- プロジェクト libhunspell myproject\myproject\HunSpell-Src\win-api\libhunspell.vcproj をソリューションに追加して変換しました。
- Configuration Manager で、デバッグ ビルドに debug_dll を使用し、リリース ビルドに libhunspell の release_dll を使用するようにしました。
- libhunspell プロジェクトを再ビルドすると、libhunspell.dllが debug_dll フォルダーと release_dll フォルダーにそれぞれ生成されます。
- コンソール プロジェクトを libhunspell に依存させました。(libhunspell への参照を追加)
- SourceForge.org からダウンロードした辞書ファイル en_US.aff と en_US.dic をmyproject\myproject\HunSpell-Dicにコピーしました。
codeprojectチュートリアルで言及されているプロセッサ定義HSPELLEDIT_DLLを追加する方法/場所がわかりません。
MSDNの「コンソール アプリケーションでクラス ライブラリの機能を使用するには」に記載されている手順に従っても、結果は変わりませんでした。
次のようなプログラムでテストしたい:
#include <iostream>
#include "HunSpell-Src/win_api/hunspelldll.h"
using namespace std;
void main()
{
void *spellObj = hunspell_initialize("HunSpell-Dic\\en_us.aff", "HunSpell-Dic\\en_us.dic");
char str[60];
cin >> str;
int result = hunspell_spell(spellObj, str);
if(result == 0)
cout << "Spelling error!";
else
cout << "Correct Spelling!";
hunspell_uninitialize(spellObject);
}
VS をコンパイルしようとすると、次のエラー メッセージが表示されます。
myproject\myproject\hunspell-src\win_api\hunspelldll.h(34): fatal error C1083: Cannot open include file: 'hunspell.hxx': No such file or directory
Hunspell.hxx は myproject\myproject\HunSpell-Src\hunspell にあります。タブが「エラー: ソース ファイル hunspell.hxx を開けません」というメッセージでフォーカスされていない間、IntelliSense は #include "hunspell.hxx" をエラーとしてマークしますが、フォーカスを与えるとエラーは消えます。
ご協力ありがとうございました。