After I managed to get Hunspell working with a Win32 console application,我想在同一解决方案的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\hunspellspellcheck\hunspell-src\win_api中。
  • 项目libhunspell已导入,编译时没有错误。
  • 解决方案中的控制台应用程序使用相同的hunspell dll /源文件,并且没有错误
  • 已根据this thread
  • 设置了控制台应用程序
  • 文件夹HunSpell-SrcHunSpell-Dic不在项目文件夹中,而是在解决方案文件夹spellcheck中,并且已正确引用。

  • 我已经如下设置了MFC应用程序:
  • 向解决方案MFC2中添加了新的MFC应用程序(SDI)作为项目。
  • libhunspell中添加了对项目MFC2的引用。
  • Project > Properties > Configuration Properties > C++ > General > Additional Include Directories已设置为:..\hunspell-src\hunspell;%(AdditionalIncludeDirectories)(与控制台应用程序相同)
  • Project > Properties > Configuration Properties > Linker > General > Additional Library Directories已设置为:..\hunspell-src\win_api\Debug_dll\libhunspell;%(AdditionalLibraryDirectories)(与控制台应用程序相同)
  • #include "../HunSpell-Src/win_api/hunspelldll.h"中的#include MainFrm.h下添加了Mainfrm.cpp

  • 我决定将hunspelldd.h的#include放在Mainfrm.cpp中,并省略设置对话框并调用它,以使此问题尽可能简短。尽管如此,我已经按照所述设置了一个产生所述错误消息的项目。

    因为控制台应用程序可以正常编译,所以我认为是MFC特定的问题引起的。

    谢谢您的帮助。

    最佳答案

    在replist.hxx中的类声明之前添加“#undef near”

    关于c++ - C++-在MFC中使用Hunspell,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9735872/

    10-12 03:27