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\hunspellspellcheck\hunspell-src\win_api.
  • 该项目libhunspell已导入并编译没有错误。
  • 解决方案中的控制台应用程序使用相同的 hunspell dll/源文件并且没有错误
  • 控制台应用程序已根据此线程进行设置
  • 文件夹HunSpell-SrcHunSpell-Dic不在项目文件夹中,而是在解决方案文件夹中spellcheck并正确引用。

我已将 MFC 应用程序设置如下:

  1. 将新的 MFC 应用程序 (SDI) 作为项目添加到名为MFC2.
  2. 添加了对项目的引用libhunspellMFC2.
  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

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

因为控制台应用程序编译得很好,我假设某些特定于 MFC 的东西导致了这个问题。

谢谢您的帮助。

4

2 回答 2

4

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

于 2012-05-27T20:07:41.063 回答
0

我会在replist.hxx 之前的包含文件中查找错误,可能是类定义中缺少结束分号。

于 2012-03-16T14:47:19.040 回答