1

我正在为 Windows 通用应用程序编译第三方库libkml 。而且我注意到以下 Win32 API 除了WINAPI_PARTITION_DESKTOP.

以下来自fileapi.h

#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

WINBASEAPI
DWORD
WINAPI
GetTempPathW(
    _In_ DWORD nBufferLength,
    _Out_writes_to_opt_(nBufferLength, return + 1) LPWSTR lpBuffer
    );
... 
#endif

有谁知道GetTempPathWindows Store App 和 Windows Phone App 的等效功能?

4

2 回答 2

3

下面是一个示例GetTemporaryDirectory()包装函数,取自以下关于“为 Windows 应用商店和 Win32 桌面应用程序编写共享代码”的 MSDN 博客文章:

游戏的双重用途编码技术,第 3 部分

void GetTemporaryDirectory( wchar_t* dir, size_t maxsize )
{
    if ( !maxsize ) return;
    *dir = 0;
    #if !defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP)
    DWORD nChars = GetTempPath( maxsize, dir );
    if ( nChars > 0 )
        dir[nChars-1] = '\0'; // Trim trialing '\'
    else
        *dir = 0;
    #else // Windows Store WinRT app
    auto folder = Windows::Storage::ApplicationData::Current->TemporaryFolder;
    wcscpy_s( dir, maxsize, folder->Path->Data() );
    #endif // WINAPI_FAMILY_PARTITION
} 
于 2015-08-19T18:18:23.363 回答
1

使用ApplicationData.TemporaryFolder.

于 2015-08-19T15:31:50.940 回答