After I managed to get Hunspell working with a Win32 console application,我想在同一個解決方案中的MFC應用程序中使用Hunspell。 當我嘗試編譯MFC應用程序時出現以下錯誤。C++ - 在MFC中使用Hunspell
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 /源文件,並具有無錯誤。
- 控制檯應用程序已經設置相應地this thread
- 的文件夾
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
已被設置爲:在Mainfrm.cpp
#include MainFrm.h
下..\hunspell-src\win_api\Debug_dll\libhunspell;%(AdditionalLibraryDirectories)
(同控制檯應用程序)- 添加
#include "../HunSpell-Src/win_api/hunspelldll.h"
。
我決定把的hunspelldd.h
將#include在Mainfrm.cpp
並省略設立一個對話框,稱這是爲了保住這個問題儘可能短。儘管如此,我已經建立了一個項目描述,產生所述的錯誤信息。
由於控制檯應用程序編譯得很好,我假定MFC特定的東西導致了問題。
謝謝你的幫助。
現在它編譯,雖然有幾個警告。謝謝。 – 2012-05-28 14:43:52
也爲我工作。 @Igor:謹慎地給出解釋爲什麼這是必要的? – Jacob 2012-06-07 18:57:20
WinAPI minwindef.h中有「#define near」,在該範圍內可見。由於這個原因預處理器產生錯誤。 – Igor 2012-06-11 09:06:12