• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 96  文章 - 255  trackbacks - 0
            <2008年4月>
            303112345
            6789101112
            13141516171819
            20212223242526
            27282930123
            45678910

            E-mail:zbln426@163.com QQ:85132383 長(zhǎng)期尋找對(duì)戰(zhàn)略游戲感興趣的合作伙伴。

            常用鏈接

            留言簿(21)

            隨筆分類

            隨筆檔案

            SDL相關(guān)網(wǎng)站

            我的個(gè)人網(wǎng)頁(yè)

            我的小游戲

            資源下載

            搜索

            •  

            積分與排名

            • 積分 - 492113
            • 排名 - 38

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

                    VC2005和VC2008編譯出來(lái)的程序放到別人的電腦上為什么有可能無(wú)法運(yùn)行呢?
                    這個(gè)問(wèn)題無(wú)數(shù)人在問(wèn),但是很遺憾,沒(méi)有人給出完整的解釋和完美的解決方案。其實(shí)我也只有一臺(tái)電腦,而且裝了VC了,這個(gè)問(wèn)題必須要臺(tái)沒(méi)有裝這類軟件的電腦才容易去分析。感謝那些為了測(cè)試我小程序的朋友,是你們一次次在如此惡劣的網(wǎng)絡(luò)速度下收取我一次次修改的dll包和部署文件,才讓這個(gè)問(wèn)題的完美解決方案浮出水面。這里就把我的經(jīng)驗(yàn)給大家分享吧。

            1:Microsoft Visual C++ 2008 Express Edition可以發(fā)布軟件嗎?

                    能!
                    很多人說(shuō),因?yàn)槭荅xpress版,不是Studio,所以只是用來(lái)練習(xí)語(yǔ)言的,不能發(fā)布軟件——錯(cuò)!
                    除了沒(méi)有MFC和ATL,基本上跟 .net 版本是一樣的。發(fā)布出來(lái)的,是完整的可執(zhí)行文件。

            2:VC 2008 (2005) 發(fā)布出來(lái)的程序必須附帶上他們特定的dll文件嗎?

                    不一定。
                    如果目標(biāo)系統(tǒng)是個(gè)經(jīng)常升級(jí)的系統(tǒng),微軟已經(jīng)為其打上了所需要的dll文件補(bǔ)丁了,不需要在軟件包里面附加特定的dll文件。特別在Vista系統(tǒng)中,你更是不需要VC8和VC9的dll文件。但是在一些老版本的系統(tǒng)中,這些文件就是必須的。

            3:VC2008和VC2005特定的dll文件是哪些?

            VC8: msvcm80.dll, msvcp80.dll, msvcr80.dll
            VC9: msvcm90.dll, msvcp90.dll, msvcr90.dll

            4:如何部署文件?

            首先,請(qǐng)選擇release版本;在生成可執(zhí)行文件(exe文件)的時(shí)候,會(huì)得到相應(yīng)的部署文件(manifest文件)。
            比如,得到a.exe文件,就會(huì)同時(shí)生成a.exe.intermediate.manifest文件。請(qǐng)將這2個(gè)文件放在同一文件夾下。
            然后,你需要VC8和VC9的部署文件:Microsoft.VC80.CRT.manifest和Microsoft.VC90.CRT.manifest。
            請(qǐng)到你的VC安裝目錄下尋找,比如:
            C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT
            我這里也把2個(gè)部署文件直接貼出來(lái),沒(méi)裝的直接用就是了:
            Microsoft.VC80.CRT.manifest
            <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
            <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
            <noInheritable></noInheritable>
            <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
            <file name="msvcr80.dll" /> <file name="msvcp80.dll" /> <file name="msvcm80.dll" />
            </assembly>
            Microsoft.VC90.CRT.manifest
            <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
            <!-- Copyright (c) Microsoft Corporation.  All rights reserved. -->
            <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
                
            <noInheritable/>
                
            <assemblyIdentity
                    
            type="win32"
                    name
            ="Microsoft.VC90.CRT"
                    version
            ="9.0.21022.8"
                    processorArchitecture
            ="x86"
                    publicKeyToken
            ="1fc8b3b9a1e18e3b"
                
            />
                
            <file name="msvcr90.dll" /> <file name="msvcp90.dll" /> <file name="msvcm90.dll" />
            </assembly>
            然后將VC8的3個(gè)dll以及這個(gè)manifest裝到一個(gè)文件夾里,并將文件夾命名為Microsoft.VC80.CRT。
            同樣將VC9的3個(gè)dll以及這個(gè)manifest裝到一個(gè)文件夾里,并將文件夾命名為Microsoft.VC90.CRT。
            將這2個(gè)文件夾放到與exe文件(及其部署文件)所在目錄下就OK了。
            至于為什么VC9編譯的程序要用VC8的dll,大家可以看看我例程部署文件:
            <?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='asInvoker' uiAccess='false' />
                  
            </requestedPrivileges>
                
            </security>
              
            </trustInfo>
              
            <dependency>
                
            <dependentAssembly>
                  
            <assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
                
            </dependentAssembly>
              
            </dependency>
              
            <dependency>
                
            <dependentAssembly>
                  
            <assemblyIdentity type='win32' name='Microsoft.VC80.CRT' version='8.0.50727.762' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
                
            </dependentAssembly>
              
            </dependency>
            </assembly>
            VC 2008生成出來(lái)就需要VC90和VC80的CRT,我們能有什么脾氣呢……
            也就是說(shuō),還別管你exe文件多大,要保證正常運(yùn)行,我們需要首先拷貝這8個(gè)文件……
            MinGW(gcc)編譯的就沒(méi)這些麻煩。所以,我現(xiàn)在都是用兩個(gè)編譯器編譯兩個(gè)exe以供發(fā)布了。
            posted on 2008-04-12 01:51 lf426 閱讀(19417) 評(píng)論(19)  編輯 收藏 引用 所屬分類: Win32與VC

            FeedBack:
            # re: Microsoft Visual C++ 2008 發(fā)布程序的部署問(wèn)題[未登錄](méi) 2008-05-02 14:06 noname
            呵呵,我用 vc2008 做的東西就不需要 vc8 的 dll。  回復(fù)  更多評(píng)論
              
            # re: Microsoft Visual C++ 2008 發(fā)布程序的部署問(wèn)題[未登錄](méi) 2008-05-03 00:40 lf426
            一直在官方升級(jí)的xp和2k3基本上不需要vc80和vc90的dll,Vista就更不需要了。但是問(wèn)題是有多少人能在官方升級(jí)的。:)珍惜生命,拒絕盜版^^  回復(fù)  更多評(píng)論
              
            # re: Microsoft Visual C++ 2008 發(fā)布程序的部署問(wèn)題 2008-06-11 04:51 x11
            為什么不用不用VC6呢,什么DLL都不需要,呵呵  回復(fù)  更多評(píng)論
              
            # re: Microsoft Visual C++ 2008 發(fā)布程序的部署問(wèn)題 2008-06-12 23:12 awshome
            之后.考到目標(biāo)計(jì)算機(jī)上就可以了嗎.我用VC2008 MFC 寫的程序.到XP上說(shuō)什么無(wú)法定位 mfcm90u.dll.我已經(jīng)裝了./VC2008 的運(yùn)行庫(kù)了.還是不能運(yùn)行?  回復(fù)  更多評(píng)論
              
            # re: Microsoft Visual C++ 2008 發(fā)布程序的部署問(wèn)題[未登錄](méi) 2008-06-13 00:05 lf426
            我用的是Express Edition,沒(méi)有MFC這些。估計(jì)你還是要參考下程序的布局文件(manifest),看看需要的dll以及應(yīng)該放在什么位置。  回復(fù)  更多評(píng)論
              
            # re: Microsoft Visual C++ 2008 發(fā)布程序的部署問(wèn)題 2008-06-15 10:15 cnhome
            還就是VC6編譯的程序好用,走遍天下無(wú)敵手啊
              回復(fù)  更多評(píng)論
              
            # re: Microsoft Visual C++ 2008 發(fā)布程序的部署問(wèn)題[未登錄](méi) 2008-06-15 18:59 lf426
            傳說(shuō)中,VC6對(duì)C++標(biāo)準(zhǔn)支持不好——當(dāng)然,實(shí)際上我個(gè)人還沒(méi)遇到特別嚴(yán)重的情況——因?yàn)槲矣玫腃++還很初級(jí):) 這個(gè)要怪只能怪M$自己,自己搞了太多概念,太多自己的標(biāo)準(zhǔn)。  回復(fù)  更多評(píng)論
              
            # re: Microsoft Visual C++ 2008 發(fā)布程序的部署問(wèn)題 2008-06-26 10:33 空明流轉(zhuǎn)
            VC6是在C++標(biāo)準(zhǔn)之前出的。  回復(fù)  更多評(píng)論
              
            # re: Microsoft Visual C++ 2008 發(fā)布程序的部署問(wèn)題 2008-06-26 20:33 Simon
            非常感謝!我在Xubuntu8.04+Wine1.0上裝Tencent Messenger 2008時(shí)就遇到了這樣的問(wèn)題。安裝運(yùn)行時(shí)提示需要ATL80.DLL、MSVCP80.dll、MSVCR80.dll和Microsoft.VC80.CRT,按照你文中所講處理后問(wèn)題解決。
            只是又有新提示還需要Microsoft.VC80.ATL,搜了一圈也沒(méi)找到,方便再提供代碼給我嗎?
            先多謝了!
            ifw_simon AT hotmail DOT com  回復(fù)  更多評(píng)論
              
            # re: Microsoft Visual C++ 2008 發(fā)布程序的部署問(wèn)題[未登錄](méi) 2008-06-26 22:29 lf426
            我裝的Express版的,沒(méi)有ATL和MFC庫(kù),你得拜托裝了完整版vs2005.net的朋友給你找個(gè)配置文件哈。  回復(fù)  更多評(píng)論
              
            # re: Microsoft Visual C++ 2008 發(fā)布程序的部署問(wèn)題 2008-06-27 10:03 Simon
            @lf426
            噢,明白了,非常感謝啦!  回復(fù)  更多評(píng)論
              
            # re: Microsoft Visual C++ 2008 發(fā)布程序的部署問(wèn)題 2008-08-31 20:11 孤山客
            好像大家都不懂哎

            VC6也是需要dll的,因?yàn)橄到y(tǒng)都已經(jīng)自帶的而已【太老了嗎嘛】

            VC89其實(shí)也不用帶的,前提是你選擇靜態(tài)鏈接運(yùn)行庫(kù)。

            反而是GNU是不行的,根據(jù)LGPL協(xié)議你是不能靜態(tài)鏈接標(biāo)準(zhǔn)庫(kù)的,當(dāng)然你可以選擇別的協(xié)議的標(biāo)準(zhǔn)庫(kù),不用GNU自帶的庫(kù)。  回復(fù)  更多評(píng)論
              
            # re: Microsoft Visual C++ 2008 發(fā)布程序的部署問(wèn)題[未登錄](méi) 2008-09-02 13:08 lf426
            LGPL也可以靜態(tài)編連的,只要一并公開(kāi)源代碼就可以了。:)  回復(fù)  更多評(píng)論
              
            # re: Microsoft Visual C++ 2008 發(fā)布程序的部署問(wèn)題[未登錄](méi) 2008-10-15 19:57 aaaa
            Visual C++ 2008 什么時(shí)候脫離Net Framwork DLL而獨(dú)立可運(yùn)行啊????????????????  回復(fù)  更多評(píng)論
              
            # re: Microsoft Visual C++ 2008 發(fā)布程序的部署問(wèn)題 2009-06-07 16:28 Coolsunsky
            我跟你一樣啊  回復(fù)  更多評(píng)論
              
            # re: Microsoft Visual C++ 2008 發(fā)布程序的部署問(wèn)題[未登錄](méi) 2010-01-27 10:19 風(fēng)
            為啥不安裝一下Microsoft Visual C++ 2008 Redistributable Package呢?   回復(fù)  更多評(píng)論
              
            # re: Microsoft Visual C++ 2008 發(fā)佈程序的部署問(wèn)題 2010-08-17 17:48 CROMA
            裝了 VS2008 SP1 以後好像就不適用這個(gè)方法了 orz
              回復(fù)  更多評(píng)論
              
            # re: Microsoft Visual C++ 2008 發(fā)布程序的部署問(wèn)題 2010-10-16 22:42 莉薩
            裝個(gè)Redistribution Package就好了阿.
            還有就是別把Debug的搞成Release拿出去就好了.

            曾經(jīng)碰到最惡心的問(wèn)題是一個(gè)2008的c#的solution,link了一個(gè)vc6的庫(kù),一個(gè)vc9的c#庫(kù),c#庫(kù)link了一個(gè)vc9的cli庫(kù).

            悲慘的是,做vc6,vc9cli,vc9c#,還有整個(gè)solution的人分別在兩個(gè)地方,然后正好挨到升級(jí)2008sp1的那幾天....

            那叫一個(gè)悲劇阿....link error導(dǎo)致項(xiàng)目delay了1個(gè)月  回復(fù)  更多評(píng)論
              
            # re: Microsoft Visual C++ 2008 發(fā)布程序的部署問(wèn)題 2015-06-11 17:40 fromse
            好貼!經(jīng)驗(yàn)證是可行的。  回復(fù)  更多評(píng)論
              
            精品国产日韩久久亚洲| 青青青青久久精品国产| 久久久久无码精品国产不卡| 久久偷看各类wc女厕嘘嘘| 91久久精品国产免费直播| 久久精品国产AV一区二区三区| 久久久久AV综合网成人| 午夜视频久久久久一区 | 亚洲а∨天堂久久精品9966| 亚洲精品美女久久777777| 久久精品国产亚洲一区二区| 国内精品久久久久影院亚洲| 亚洲综合婷婷久久| 久久婷婷五月综合国产尤物app | 色综合久久综合中文综合网| 国产激情久久久久影院小草| 久久天天躁狠狠躁夜夜躁2O2O | 色偷偷88888欧美精品久久久| 伊人久久综合热线大杳蕉下载| 久久精品成人欧美大片| 久久本道综合久久伊人| 日韩精品国产自在久久现线拍| 亚洲精品乱码久久久久久蜜桃不卡 | 久久经典免费视频| 久久亚洲国产成人影院网站| 青青草国产精品久久| 91精品国产91久久久久福利| 午夜天堂av天堂久久久| 久久精品国产2020| 久久精品国产亚洲AV忘忧草18| 亚洲国产成人精品女人久久久| 久久精品国产亚洲av瑜伽| 久久婷婷国产麻豆91天堂| 久久久久久久亚洲Av无码| 久久精品国产亚洲AV无码娇色| 久久天天躁狠狠躁夜夜avapp | 97久久超碰国产精品2021| 久久国产免费观看精品3| 久久国产精品无码一区二区三区| 麻豆成人久久精品二区三区免费 | 99999久久久久久亚洲|