Я составляю стороннюю библиотеку libkml для Windows Universal App. И я замечаю, что следующий Win32 API недоступен ни на чем, кроме WINAPI_PARTITION_DESKTOP
.Эквивалент GetTempPath на Windows Phone
Ниже от 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
Кто-нибудь знает аналогичную функцию для этого GetTempPath
для Windows Store App и Windows Phone App?
Здравствуйте, Remy, спасибо за пример! Я надеюсь, что я получу эквивалентную функцию в C++, а не CX/C++. Так что я могу просто исправить стороннюю библиотеку, которая была первоначально написана для старого API Win32; и скомпилировать библиотеку в Windows Phone или Store App DLL, а затем она будет использоваться в компоненте Windows Runtime в конечном итоге. Но, похоже, сейчас это не вариант. Я дам ему еще пару часов, если у других есть лучшие решения. Если нет, это будет лучший ответ. –
API WinRT подвергаются воздействию C++ как COM-объектов. Возможно, вы можете использовать [Windows Runtime C++ Template Library (WRL)] (https://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh438466.aspx) для взаимодействия с ними. –
Директива препроцессора, вероятно, должна быть '#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)' вместо этого. @Yuchen: C++/CX - это C++, с языковыми прогнозами для облегчения доступа к среде Windows Runtime. Хотя он заимствует синтаксис из C++/CLI, он компилирует собственный код, а синтаксис, не поддерживающий платформу, совместим с C++ 11, поэтому вы можете скомпилировать обычный C++-код как C++/CX. – IInspectable