好玩的 manifest

先前在 Tooltip Controls 曾經提到 Manifest,當時還不甚瞭解,而今天又碰到類似的問題,所以決定作個實驗來澄清一下!

首先找個專案來設定,把 Embed Manifest 設為 No,也就是把 Manifest file 放在外面,不要內嵌到程式中




編譯後程式執行結果如下:


對應的 Manifest file 如下

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="requireAdministrator" uiAccess="false"></requestedExecutionLevel>
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC90.DebugCRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC90.DebugMFC" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" language="*"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
</assembly>

我們是使用 6.0.0.0 的 Common Control,如果把這一段刪掉的話,程式執行結果如下:


有沒有發現 Style 不一樣了,原來 Manifest 可以把它想成執行時期的設定檔,讓程式決定執行時期的行為。以此為例,只要附上不同的 Manifest file 就可以有不同的外觀了

參考:Manifest Resources

PS : 怎麼舊的 Style 還比較好看啊?

留言

這個網誌中的熱門文章

Linux 批次檔的寫法

【分享】如何顯示 Debug Message

[分享] Visual Studio 遠端偵錯