在我设法让 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\hunspell
和spellcheck\hunspell-src\win_api
. - 该项目
libhunspell
已导入并编译没有错误。 - 解决方案中的控制台应用程序使用相同的 hunspell dll/源文件并且没有错误。
- 控制台应用程序已根据此线程进行设置
- 文件夹
HunSpell-Src
和HunSpell-Dic
不在项目文件夹中,而是在解决方案文件夹中spellcheck
并正确引用。
我已将 MFC 应用程序设置如下:
- 将新的 MFC 应用程序 (SDI) 作为项目添加到名为
MFC2
. - 添加了对项目的引用
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
。
我决定将#includehunspelldd.h
放入Mainfrm.cpp
并省略设置对话框并调用它,以使这个问题尽可能简短。尽管如此,我已经按照描述设置了一个项目,该项目会产生所述错误消息。
因为控制台应用程序编译得很好,我假设某些特定于 MFC 的东西导致了这个问题。
谢谢您的帮助。