1

我想在cpp中检索当前用户文档文件夹的文件夹,所以我使用SHGetFolderPath并包含Shobjidl.h.

结果我的代码无法编译并生成以下输出:

1>C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\shobjidl.h(8994): error C2143: syntax error : missing ')' before 'constant'
1>C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\shobjidl.h(8994): error C2143: syntax error : missing ';' before 'constant'
1>C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\shobjidl.h(8994): error C2059: syntax error : ')'
1>C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\shobjidl.h(8994): error C2238: unexpected token(s) preceding ';'

这些错误背后的代码是:

        virtual HRESULT STDMETHODCALLTYPE GetInt32( 
            /* [in] */ __RPC__in REFPROPERTYKEY key,
            /* [out] */ __RPC__out int *pi) = 0; // <- this line produces compile error

怎么了?提前致谢。

我正在使用 Win 7,VS2010 Express。

4

1 回答 1

3

Shlobj.h根据文档,您需要为该函数包含的头文件不是Shobjidl.h. 我猜这Shobjidl.h可能是一个内部头文件,而不是直接包含在内 - 它可能取决于之前已经包含的其他头文件,这将修复您看到的错误。

于 2012-12-13T22:13:50.650 回答