C ++ - Использование Hunspell с MFC - PullRequest
2 голосов
/ 16 марта 2012

После того как мне удалось заставить Hunspell работать с консольным приложением Win32 , я хочу использовать Hunspell в приложении MFC в том же решении.Я получаю следующую ошибку при попытке скомпилировать приложение 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 / исходные файлы и имеет без ошибок .
  • Консольное приложение было настроено соответственно этой теме
  • Папки HunSpell-Src и HunSpell-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.

Я решил поставить #включите hunspelldd.h в Mainfrm.cpp и не устанавливайте диалоговое окно и не вызывайте его, чтобы этот вопрос был как можно более коротким.Тем не менее, я настроил проект, как описано, который выдает указанные сообщения об ошибках.

Поскольку консольное приложение компилируется нормально, я предполагаю, что что-то специфическое для MFC вызывает проблему.

Спасибо за вашу помощь.

Ответы [ 2 ]

4 голосов
/ 28 мая 2012

Добавить "#undef near" перед объявлением класса в replist.hxx

0 голосов
/ 16 марта 2012

Я бы искал ошибку во включаемом файле непосредственно перед replist.hxx, возможно, отсутствующую конечную точку с запятой в определении класса.

...