如何以编程方式找到“保存的游戏”文件夹中的C / C ++?

问题描述 投票:2回答:1

我写一个游戏。我打算到商店中的“保存的游戏”目录中保存。

如何找到编程方式保存的游戏文件夹的位置?

它需要在非英语Windows上工作。像%USERPROFILE%\Saved Games黑客是不是一种选择。

c++ c windows winapi game-development
1个回答
10
投票

该保存的游戏目录可以位于同SHGetKnownFolderPath()功能,可自从Windows Vista和Windows Server 2008。

注意,FOLDERID_SavedGames参数是一个C ++参考。与&FOLDERID_SavedGames替换从C代码中调用。

试验成功第一个在线MSVC的编译器,我可以找到:

https://rextester.com/l/cpp_online_compiler_visual

#define WINVER 0x0600
#define _WIN32_WINNT 0x0600

#include <stdio.h>
#include <shlobj.h>
#include <objbase.h>

#pragma comment(lib, "shell32.lib")
#pragma comment(lib, "ole32.lib")

int main(void)
{
    PWSTR path = NULL;
    HRESULT r;

    r = SHGetKnownFolderPath(FOLDERID_SavedGames, KF_FLAG_CREATE, NULL, &path);
    if (path != NULL)
    {
        printf("%ls", path);
        CoTaskMemFree(path);
    }

    return 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.