gpt4 book ai didi

c++ - 确定 C++ 应用程序是否作为具有旧版支持的 UWP 应用程序运行

转载 作者:太空宇宙 更新时间:2023-11-03 10:38:29 25 4
gpt4 key购买 nike

我的第一个想法是使用 GetPackageFamilyName() 并查找 ERROR_SUCCESSAPPMODEL_ERROR_NO_PACKAGE

但是,我需要支持 Windows 7,这使得 GetPackageFamilyName() 无法使用。

有没有合适的替代方法?也许注册表中有任何内容?

最佳答案

使用GetProcAddress()在运行时动态加载GetPackageFamilyName(),例如:

typedef LONG WINAPI (*LPFN_GPFN)(HANDLE, UINT32*, PWSTR);
bool bIsUWP = false;

LPFN_GPFN lpGetPackageFamilyName = (LPFN_GPFN) GetProcAddress(GetModuleHandle(TEXT("kernel32")), "GetPackageFamilyName");
if (lpGetPackageFamilyName)
{
UINT32 size = 0;
if (lpGetPackageFamilyName(GetCurrentProcess(), &size, NULL) == ERROR_INSUFFICIENT_BUFFER)
bIsUWP = true;
}

if (bIsUWP)
{
//...
}
else
{
//...
}

或者,考虑使用 GetCurentPackage...() 函数之一(GetCurrentPackageFamilyName()GetCurrentPackageId()GetCurrentPackageInfo() 等)而不是使用 GetPackageFamilyName() 和调用进程的 HANDLE

关于c++ - 确定 C++ 应用程序是否作为具有旧版支持的 UWP 应用程序运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52207484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com