首页 > 解决方案 > 如何获取windows的系统路径?

问题描述

我正在尝试获取 Windows 的所有系统路径。阅读本文时,它说使用 KNOWNFOLDERID。所以我按照这里的例子。当尝试使用该示例时,出现编译错误。

测试.cpp:

#include <tchar.h>
#include <sysinfoapi.h>
#include <Shlobj.h>
#include <combaseapi.h>
#include <WTypesbase.h>
#include <winnt.h>

int main() {
    IKnownFolderManager *pManager;

    HRESULT hr = CoCreateInstance(
        CLSID_KnownFolderManager, 
        NULL, CLSCTX_INPROC_SERVER, 
        IID_PPV_ARGS(&pManager)
    );
}

这就是我到目前为止所拥有的。我得到的错误是

错误:从类型 'IKnownFolderManager*' 到类型 'IUnknown*' 的 static_cast 无效 static_cast<IUnknown *> (*pp);

我正在从 Windows 10 中的命令行编译为:g++ test.cpp

标签: c++windows

解决方案


IKnownFolderManager需要<Shobjidl.h>. 没有那个包含,编译器不知道如何转换IKnownFolderManagerIUnknown.


推荐阅读