VC++ 2005編出來的程式無法在WINXP下執行,這件事情竟然困擾了我一個下午。我花了一個上午的時間將我的程式編譯完成,並且可以在我的電腦上正常運作,但是將這個程式拿給別人時,竟然出現"由於應用程式配置不正確,應用程式未能啟動,重新安裝應用程式可能可以解決這個問題"的提示對話框,我所撰寫的程式無法執行。
 
我第一個直覺動作就是換一台電腦試試看,於是從WINXP換成WIN2000上執行,結果發現WIN2000出現不同的錯誤訊息。但是這個錯誤訊息卻比較好解決,因為我看的懂。主要是說找不到一些動態連結檔,於是我把該程式需要的動態連結檔(dll)複製到WIN2000那台機器上,結果就可以執行了。於是我又將這包程式,當然包含那些動態執行檔(dll)複製到WINXP的作業系統上,結果依然不能執行,而且出現和之前一樣的錯誤。出現"由於應用程式配置不正確,應用程式未能啟動,重新安裝應用程式可能可以解決這個問題"的提示對話框。於是我又開始懷疑是不是.net framework ,於是在WINXP上安裝.NET Framework 2.0,結果仍然出現相同的錯誤。明明是相同的程式,而且都是在微軟的作業平台上執行,竟然因為作業系統的不同而不能執行。
 
最後終於知道發生什麼問題,這個問題不是因為缺少DLL所引起的,也不是因為沒有安裝.NET Framework所造成的,而是在Visual C++ 2005默認的MFC是使用動態的MFC函式庫(Use MFC in a Shared DLL)來連結,而動態MFC函式庫是Muti-threaded DLL (/MD),由於WINXP對於文件的監控比較嚴格,因此導致部分使用多執行緒的DLL執行時發生錯誤,因此會造成上述的問題。
 
解決方法:
修改編譯時的屬性設定,
在Project ->Property ->configuration Properties ->C/C++ -> Code Generation ->Runtime Libary 修改成Multi-threaded(/MT),
修改了Runtime之後,將MFC編譯類型變更成靜態函式庫,
Project ->Property ->Configuration Properties ->Use of MFC
修改成Use MFC in a Static Library
這樣部分的問題就會解決了。但是在做了上述的變更之後,似乎會產生另一個問題,似乎是函式庫衝到了。有些函式庫似乎是重複定義了,所以又要修改編譯的屬性值。
Project ->Property ->configuration Properties ->Linker -> Input ->Additional Dependenceies
加入 nafxcw.lib和l ibcpmt.lib 。
Project->Property->configuration Properties->Linker->Input->Ignore Specific Library
加入nafxcw.lib和l ibcpmt.lib 。
修改完重新編譯就能在WINXP上執行了。
創作者介紹
創作者 CJY0503 的頭像
CJY0503

程式設計者天堂

CJY0503 發表在 痞客邦 留言(2) 人氣()


留言列表 (2)

發表留言
  • [string not found (whatsnew.missing.displayname)]
  • wow gold
    wow power leveling
    google排名
    google排名
    google左侧排名
    google左侧排名
    中国福利彩票
    双色球
    中国体育彩票
    中彩网
    租房
    租房
    北京租房
    北京租房
    保洁
    保洁
    保洁公司
    保洁公司
    cheap wow powerleveling
    cheap wow powerleveling
    cheap wow powerleveling
    cheap wow powerleveling
    cheap wow power leveling
    cheap wow power leveling
    cheap wow power leveling
    cheap wow powerlevel
    cheap wow powerlevel
    cheap wow powerlevel
    cheap wow powerlevel
    cheap wow power level
    cheap wow power level
    cheap wow power level
    cheap wow power level
    cheap wow power leveling
    powerlevel
    powerlevel
    powerlevel
    powerlevel
    power level
    power level
    power level
    power level
    wow powerlevel
    wow powerlevel
    wow powerlevel
    wow powerlevel
    wow power level
    wow power level
    wow power level
    wow power level
    cheap powerlevel
    cheap powerlevel
    cheap powerlevel
    cheap powerlevel
    cheap power level
    cheap power level
    cheap power level
    cheap power level
    cheap powerleveling
    cheap powerleveling
    cheap powerleveling
    cheap powerleveling
    cheap power leveling
    cheap power leveling
    cheap power leveling
    cheap power leveling
    powerleveling wow
    powerleveling wow
    powerleveling wow
    powerleveling wow
    power leveling wow
    power leveling wow
    power leveling wow
    power leveling wow -189802153686079
  • 阿諾
  • 先生:

    你真厲害,解決了我的問題!!!