2012-03-16 2 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 был импортирован и компилирован без ошибок.
  • Консольное приложение в решении использует те же hllspell dll/исходные файлы и имеет ошибок.
  • Применение консоли была установка соответственно this thread
  • Папки 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.

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

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

Благодарим за помощь.

ответ

4

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

+0

Теперь он компилируется, хотя с несколькими предупреждениями. Благодарю. –

+0

Работал и для меня. @Igor: позаботиться о том, чтобы объяснить, почему это необходимо? – Jacob

+0

В WinAPI minwindef.h есть «#define near», который отображается в этой области. По этой причине препроцессор генерирует ошибку. – Igor

0

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

+0

Я проверил это и не смог найти. Если бы такая простая синтаксическая ошибка отвечала, могла ли libhunspell даже скомпилировать (что она сделала)? –

Смежные вопросы