2013-11-28 1 views
4

У меня есть старомодное приложение Windows GDI, написанное на C, которое компилируется с помощью инструментальной цепочки Mingw.Манифест игнорируется в приложении mingw

Некоторые из моих пользователей жалуются на виртуальный магазин Windows Vista и Windows 7, где файлы, которые записываются в каталоги, которые приложение не должно иметь доступа, отключаются и сохраняются в другом месте. Они говорят, что это путает их, и они скорее ошибаются. Согласно документации Microsoft, способ предотвратить это - добавить манифест приложения.

К сожалению, это ничего не делает.

Мой манифест:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
    <description>WordGrinder</description> 
    <assemblyIdentity version="1.0.0.0" name="WordGrinder"/> 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> 
    <security> 
     <requestedPrivileges> 
     <requestedExecutionLevel 
      level="asInvoker" 
      uiAccess="false"/> 
     </requestedPrivileges> 
     </security> 
    </trustInfo> 
</assembly> 

... и файл ресурсов, который относится к нему: (. Не сложно, как вы можете видеть)

CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "src/c/arch/win32/manifest.xml" 
101 ICON DISCARDABLE "src/c/arch/win32/icon.ico" 

Файл ресурсов скомпилирован с windres и связаны с моим приложением обычным способом. Значок появляется, поэтому я уверен, что этот бит, по крайней мере, правильный.

Есть ли что-нибудь еще, что мне нужно сделать, чтобы проявление было выполнено?

ответ

6

Решено: я пропускал эту строку из файла ресурсов:

#include "winuser.h" 

Без него вы не получите каких-либо диагностики или указания, что он не работал; вы просто не получаете манифест. Вздох.

Я понял это с помощью манифеста инструмент для извлечения здесь: http://weblogs.asp.net/kennykerr/archive/2007/07/10/manifest-view-1-0.aspx

+0

Этот ответ заслуживает более upvotes. Я следил за документами MSDN о том, как встраивать манифест UAC с помощью Visual Studio и пытаться выяснить, как его адаптировать для компилятора MingW32, когда я решил попробовать Google и приземлился здесь. https://msdn.microsoft.com/en-us/library/bb756929.aspx –