關於並行配置不正確,應用程序無法啓動的問題

   這二天的一個軟件發佈後,在自己的電腦與測試電腦上和虛擬機上運行都沒有問題,當弄了一臺新電腦,準備安裝好軟件,給客戶用時,出現"應用程序無法啓動,應用程序的並行配置不正確".

   這回有點傻了,這個錯誤都沒見過,在說,我程序編譯時用的是靜態庫編譯,如果沒有庫,也會報缺少**.DLL庫啊,報個這個錯,有點看不懂的感覺,其它的運行時庫用的是多線程DLL(/MD)而不是多線程(/MT),因爲用的是VC與C#混合編程,需要用到公共語言運行庫(/CLR),沒辦法,找萬能的狗哥,網頁上大家都說是因爲系統沒有安裝VC運行庫導致的(看來這系統很純淨- -!),只要下載個vcredist就行了,找到微軟下載地址:http://www.microsoft.com/en-us/download/details.aspx?id=3387

    這個運行庫有對應的開發版本,如:2005、2008、2010啥的,還有X86和X64之分,我就下了個05和X86的,安裝完後,重啓,運行,還是不行,我去,鬱悶了。由於沒有時間試,下午又要給客戶測試,軟件不能運行就倒黴了,我想我的電腦可以運行,算了,給它安裝個VS2005,看能不能運行,安裝完成後,一運行,果然,木有問題,軟件可以運行了,現在可以肯定導致這個問題的原因就是由於缺少庫形成的,以後去安裝肯定不能給客戶的電腦搞個2005,別說客戶會說,就連自己都不忍心,哎,抱於這種態度,繼續去查找,找了一大片都是說下個vcredist後,終於看到個網友總結的,在VC目錄下的redist目錄裏,有對應需要的DLL庫,然後我就看到了mfc80.dll,這個庫是MFC程序的核心,我把它扔我的release的目錄下,一運行,還是錯誤,但錯誤改變了,說少了MFC80D.DLL庫,我果斷複製過來,一運行,OK,二個庫就可以搞定程序無法啓動的問題了。但是如果是DEBUG版的,就找對應的目錄。

   由於上面的網友只是隨便說了下目錄,這些文件都是自己試出來的,所以自己總結下:

   如果是自己的MFC程序出現這個情況,release版的只要複製/2005主目錄/VC/redist/x86/下面對應的目錄裏的開發類型(我這是MFC程序,所以是Microsoft.VC80.MFC)/下面的mfc80.dll和mfc80d.dll二個文件複製過來就行。

   而DEBUG版的複製/2005主目錄/VC/redist/Debug_NonRedist/x86/Microsoft.VC80.DebugMFC下的二個庫文件,debug版的還要複製manifest文件,所以是三個,而也用到了C#代碼,所以Microsoft.VC80.DebugCRT目錄下的也要複製過來,加上manifest文件,當然大夥如果一般不會混合編程,按道理只要DEBUG_mfc下的庫就行了,我情況特殊(- -!,而且也不好弄),囧。

   好了,最後總結(別嫌囉嗦,碼字也不容易- -!),四個方法可以解決這問題:

   1、下載網上的VC運行庫vcredist(反正我是沒成功,不知道是不是環境原因,不管了).

   2、MFC的使用改成:在靜態庫中使用MFC,代碼生成裏:運行時庫改成-多線程(/MT),由於我打開了公共語言運行庫(/clr)選項,所以只能用多線程DLL(/MD),這是共享編譯,所以我後面需要運行庫.

   3、複製對應編譯器下的redist目錄下的庫文件,上面已寫。

OK,這樣之後,你的程序就可以隨便發佈咯,不會出現少庫的情況了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章