首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

SHGetSpecialFolderPath函数使用编译报错?请高手指教,该如何处理

2012-03-11 
SHGetSpecialFolderPath函数使用编译报错?请高手指教 - C++ Builder / Windows SDK/API#include shlobj.h

SHGetSpecialFolderPath函数使用编译报错?请高手指教 - C++ Builder / Windows SDK/API
#include <shlobj.h> 
  #pragma comment(lib, "shell32.lib") 
 
 TCHAR szPath[MAX_PATH];  
 SHGetSpecialFolderPath(NULL,szPath,CSIDL_COMMON_DOCUMENTS, FALSE); 

编译报错,为何?
[C++ Error] shobjidl.h(2193): E2238 Multiple declaration for 'FOLDERSETTINGS'
[C++ Error] shobjidl.h(8095): E2238 Multiple declaration for 'DESKBANDINFO'
[C++ Error] shlobj.h(1422): E2238 Multiple declaration for 'FVSHOWINFO'
[C++ Error] shlobj.h(3457): E2238 Multiple declaration for 'SHELLFLAGSTATE'
[C++ Error] Unit1.cpp(21): E2206 Illegal character ' ' (0xa1a1)
[C++ Error] Unit1.cpp(21): E2206 Illegal character ' ' (0xa1a1)

[解决办法]
重复定义的问题,这样解决:

#define NO_WIN32_LEAN_AND_MEAN // 从 Windows 头中排除极少使用的资料
#include <shlobj.h>
#include <vcl.h>

将它们加到最前面。

Illegal character ' ' (0xa1a1)
这个问题,是由于代码中存在全角空格引起的。替换成半角的空格就行了。

热点排行