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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

VC manifest

發布時間:2023/11/27 生活经验 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VC manifest 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

manifest原理和用途

dll是被動態調用的,所以會被若干個程序共享使用的 但是如果dll在應用程序不知道的情況下升級了、或是被另一個程序更改了,就可能會出現問題,即”DLL Hell”

?

隨著系統資源越來越豐富,硬盤不那么緊張,所以在XP以后的操作系統中,用新的機制來管理DLL

?

(這種機制,這不僅僅是對于.NET而言,對于普通的Native程序也是一樣的)

?

Madifest是個XML的描述文件,對于每個DLL有DLL的Manifest文件,對于每個應用程序Application也有自己的Manifest

?

對于應用程序而言,Manifest可以是一個和exe文件同一目錄下的.manifest文件,也可以是作為一個資源嵌入在exe文件內部的(Embed Manifest)

?

XP以前版本的windows,會像以前那樣執行這個exe文件,尋找相應的dll,沒有分別Manifest只是個多余的文件或資源,dll文件會直接到system32的目錄下查找,并且調用

?

而XP以后的操作系統,則會首先讀取Manifest,獲得exe文件需要調用的DLL列表(此時獲得的,并不直接是DLL文件的本身的位置,而是DLL 的manifest)操作系統再根據DLL的Manifest去尋找對應的DLL<因此就可能區別不同版本的同一個DLL文件,或是指定一個程序本 身Isolated的DLL>

?

不過使用Visual Studio 2005以后的一個新問題是,VS2005帶的8.0新版的C運行庫(VC 8.0 CRT)文件在XP以后支持manifest的Windows版本中被調用時,將會check一下Application自身的Manifest,否則將 會拒絕被調用。這也就是說,使用Visual Studio開發的Application,Manifest將是必不可少的(搞不懂MS為啥要這樣設置,所以與VS2003.NET不同了。后來想想, 除了MS自己說的哪些冠冕堂皇的原因,至少這樣一來Linux的Wine模擬要麻煩多了)

?

除非,你的程序是靜態鏈接的,沒有使用dll,只使用了操作系統核心的 Kernel32.dll, User32.dll, Ole32.dll, 或ShDocVW.dll 等。project的設置必須是Use Standard Windows Libraries、Not Using ATL、No Common Language Runtime support

?

那么你可以不需要考慮Manifest 可以關掉它

?

VS2005中Menifest相關的設置

?

  • Project/Properties/Linker/Manifest File/Generate Manifest 決定是否生成Manifest,如上情況才可以關閉
  • Project/Properties/Linker/Manifest File/Allow Isolation 這個是設置DLL的調用的,并不能決定Manifest是否還是必須的
  • Project/Properties/Manifest Tool/Input and Output/Embed Manifest 決定Manifest是個單獨的文件還是嵌入到exe內的資源

對于我來說,使用SDL必須是啟用DLL的動態鏈接方式,所以必須開啟Manifest,并且讓Manifest Embed進入exe比較方便

?

與上面內容相應的 是關于如何發布軟件的問題,事實上只有VC6.0的CRT庫是綁定作為Windows的一部分的,之后從VS.net開始,VC程序制作安裝包也是要考慮 庫文件的,只不過VC6.0時推薦拷入System32,VC.net時推薦放在exe文件local目錄,而現在VS2005則還需要考慮 Manifest的問題了,看似麻煩,其實也還好,VS自帶工具打包,下面一些網址也有講如何手工做redistribution

總結

以上是生活随笔為你收集整理的VC manifest的全部內容,希望文章能夠幫你解決所遇到的問題。

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