以下是一个示例代码:
#include <windows.h>
#include <appmodel.h>
int main() {
HANDLE hProcess = GetCurrentProcess();
UINT32 bufferLength = 0;
PWSTR packagePath = NULL;
// 获取缓冲区大小
HRESULT result = GetPackagePath(hProcess, 0, &bufferLength, NULL);
if (result == ERROR_INSUFFICIENT_BUFFER) {
// 为缓冲区分配内存
packagePath = (PWSTR)malloc(bufferLength * sizeof(WCHAR));
if (packagePath != NULL) {
result = GetPackagePath(hProcess, 0, &bufferLength, packagePath);
if (SUCCEEDED(result)) {
// 获取包路径
wprintf(L"Current Package Path: %s\n", packagePath);
} else {
// 处理错误
wprintf(L"Error: 0x%x\n", result);
}
// 释放分配的内存
free(packagePath);
} else {
// 处理内存分配错误
wprintf(L"Memory allocation error\n");
}
} else {
// 处理错误
wprintf(L"Error: 0x%x\n", result);
}
return 0;
}
在此示例中,使用 GetPackagePath 函数来获取当前包的路径,然后打印出该路径。请确保在调用任何 Win32 API 函数之前,您已经正确链接到相应的库。
转载请注明出处:http://www.zyzy.cn/article/detail/23832/Win32 API/Appmodel.h/GetCurrentPackagePath