我试图使用Visual Studio 2008从C调用Vista函数SHGetKnownFolderPath()。代码可以像C ++一样正常工作,但是拒绝使用以下输出将其编译为C代码:


xyz \ indexwiki.cpp(316):错误C2440:
'功能':无法从
从'const GUID'到'const KNOWNFOLDERID
* const'xyz \ indexwiki.cpp(316):警告C4024:'SHGetKnownFolderPath'
:正式和
实际参数1


代码差不多:

PWSTR path;

HRESULT hr = SHGetKnownFolderPath(
  FOLDERID_Profile,
  0,
  NULL,
  &path
);


我希望将其保留为C,并且如果可以的话,将项目保留为单个源文件。这是较新的Windows API的已知问题吗?通过Google我找不到很多东西。我想念什么吗?还是有一个简单的解决方法涉及转换或预处理程序定义?

最佳答案

接下来呢?


HRESULT hr = SHGetKnownFolderPath(&FOLDERID_Profile,0,NULL,&path);

10-08 09:20