2016-11-10 2 views
-1

Привет Я пытаюсь получить имя приложения метро с приобретенным из AppManifest.xml соответствующего приложения. Пришло время узнать, что для этой цели можно использовать SHLoadIndirectString. При проверке его функциональности вручную я не смог получить ресурс результата. Фрагмент кода выглядит следующим образом.Возвращаемое значение SHLoadIndirectString является кодом ошибки

#include <iostream> 
using namespace std; 
#include <Shlwapi.h> 
int main(){ 
    LPWSTR output = L""; 
    LPWSTR input = L"@{Microsoft.BingMaps_2.1.3230.2048_x64__8wekyb3d8bbwe?ms-resource://Microsoft.BingMaps/resources/AppDisplayName}"; 
    int result = SHLoadIndirectString(input, output, sizeof(output), NULL); 
    cout<<output; 
    return 0; 
} 

Возвращаемое значение «результат» всегда отрицательное значение (изменяется, если я меняю строку ввода, соответствующую приложению). Пожалуйста, направляйте меня на мою ошибку. Благодарю.

ответ

0

Получил правильный ответ.

#include <iostream> 

using namespace std; 
#include <Shlwapi.h> 
int main() 
{ 
    PWSTR output = (PWSTR) malloc(sizeof(WCHAR)*256); 


    PCWSTR input = L"@{C:\\Program Files\\WindowsApps\\Microsoft.BingMaps_2.1.3230.2048_x64__8wekyb3d8bbwe\\resources.pri?ms-resource://Microsoft.BingMaps/Resources/AppShortDisplayName}"; 
    int result = SHLoadIndirectString(input, output, 256, NULL); 

    cout<<output; 
    return 0; 
} 
Смежные вопросы