日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

通过修改manifest文件来解决Vista/Win7/Win8/win10下应用程序兼容性问题

發布時間:2023/12/13 综合教程 34 生活家
生活随笔 收集整理的這篇文章主要介紹了 通过修改manifest文件来解决Vista/Win7/Win8/win10下应用程序兼容性问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在Vista/Win7/Win8下,有一個系統兼容性助手功能,在安裝程序安裝完成或卸載完成后,可能會彈出應用程序兼容性助手相關的提示,提示程序可能安裝不正確,很是煩人。如下圖所示:

事實上,我們的程序兼容性是沒問題的,只不過是在程序中沒有指定應用程序兼容的操作系統,所以導致了這些問題。

VS2008和VS2010可以生成一個與exe應用程序相關聯的.manifest文件,微軟已經為該文件中添加了一個新的<compatibility> 字段, 這個字段用來指定你的應用程序可以兼容的操作系統,進而可以解決程序兼容性問題。

.menifest文件是一個隨工程編譯產生的xml文件,作用是為操作系統提供了對應用程序部分信息的描述,每個exe程序或者dll都必須有一個manifest,對于應用程序而言,可以是一個和exe文件同一目錄下的.manifest文件,也可以是作為一個資源嵌入在exe文件內部的(通過修改項目配置manifest tool->input output->Embed Manifest->yes), 如果應用程序沒有.manifest文件,則會提示丟失MSVCR90D.dll,無法運行。

以下是添加了<compatibility> 字段的manifest文件,添加了對Vista/Win7/Win8/win8.1/win10系統的兼容性的支持:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

<?xml version="1.0"encoding="UTF-8"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"manifestVersion="1.0">
<assemblyIdentity version="1.5.0.0"processorArchitecture="X86"name="Microsoft.Windows.111"type="win32"/>
<description>111</description>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<!-- Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<!-- Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
</application>
</compatibility>
</assembly>

   如果你的項目會生成一個.manifest文件的話,也就是不是內嵌模式,直接修改該文件,重新編譯即可。如果你的項目設置的是將.manifest文件內嵌到應用程序內部,則你需要先修改為非內嵌模式,編譯,生成.manifest文件,修改該文件后,再將工程屬性改為內嵌模式。同時將修改后的.manifest文件通過additional manifest file 選項添加到工程里面,重新編譯即可。(好像直接編寫一個上述內容的.manifest文件,文件名:exe名稱.exe.manifest,然后將清單設置為內嵌模式,直接將manifest文件添加到工程中編譯即可)

參考:http://blog.csdn.net/chenlycly/article/details/46562611

分類:C++學習,windows開發

總結

以上是生活随笔為你收集整理的通过修改manifest文件来解决Vista/Win7/Win8/win10下应用程序兼容性问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。