Вставить файл манифеста, чтобы требовать уровня выполнения администратора с Mingw32

Я кросс-компиляции приложения с i586-mingw32msvc под Ubuntu.

У меня возникают трудности с пониманием того, как встроить файл манифеста, чтобы требовать уровня выполнения администратора с mingw32.

Для моего примера я использовал этоhello.c:

int main() {
    return 0;
}

этот файл ресурсаhello.rc:

1 Manifest "hello.exe.manifest"

этот файл манифестаhello.exe.manifest:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="hello" type="win32"/> 
    <description>Hello World</description> 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <security>
            <requestedPrivileges>
                <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
            </requestedPrivileges>
        </security>
    </trustInfo>
</assembly>

Я компилирую свой файл ресурсов с:

i586-mingw32msvc-windres hello.rc hello.o

Я собираю свое окончательное заявление с:

i586-mingw32msvc-gcc -O3 -Os -s -o hello.exe hello.c hello.o

SigCheck не показывает запущенный файл манифестаsigcheck -m hello.exe.

Теперь, когда я запускаю свое приложение под Windows, оно не вызывает UAC (= не запускается как администратор), когда я присоединяюhello.exe.manifest файл в той же папке, он вызывает UAC (как и ожидалось).

Что я упустил?

EDIT1: Играть сХакер ресурсов Я открылSetup.exe файл, который я создал с помощью NSIS, единственное разумное отличие состоит в том, чтоManifest написаноMANIFEST в моемhello.exe а такжеManifest вSetup.exe хотя вhello.rc написано Манифест. O_o

EDIT2: Я изменилManifest сгруппировать вручную с помощью Resource Hacker:

Сейчасhello.exe работает нормально, вызывая предупреждение UAC и работая от имени администратора. Похоже, "ошибка" сi586-mingw32msvc-windres, :-)

Ответы на вопрос(0)

Ваш ответ на вопрос