2009-08-05 53 views
0

我的mfc應用程序在windows server 2000 sp4上運行的visual studio 5中創建,我爲它創建一個發行版並嘗試運行它win xp slp2。它給我的應用程序未能正確初始化(0xc0150002)應用程序未能正確初始化(0xc0150002)

我曾嘗試下面的東西 - 安裝的Microsoft Visual C++ 2005 SP1可再發行組件包(x86)自帶的發行文件夾內,以及一個可下載的網站 複製的一個從微軟視覺sutdio \ vc \ redist所有dll和mainfest

我仍然收到相同的消息。 ç

可能是錯誤我該如何解決

+0

http://stackoverflow.com/a/10084733/279982 – atoMerz 2012-11-10 07:52:41

回答

0

一些事情要檢查:

  • 爲您查詢投影/子系統鏈接器選項。它可能包含操作系統主要/次要版本號。
  • 確保您在DEV機器上使用適當的Windows XP PlatformSDK;檢驗用WINVER的值,_WIN32_WINNT
  • 取決於,看看問題是否在未解決的依賴
  • 檢查時的版本的應用程序需要與目標計算機上。我通常通過從一側查看應用程序的清單並從另一側查看目標機器的WinSxS文件夾來執行此操作(最近出現了來自Microsoft http://msdn.microsoft.com/en-us/visualc/ee309358.aspx的ATL安全更新;由更新的Visual Studio創建的新二進制文件將不會運行在避風港與運行時相同的更新版本)。
0

您可能已將安全更新或編譯器更新應用於您的VS2005 SP1。這使得它生成一個清單,該清單請求與使用Microsoft Visual C++ 2005 SP1可再發行組件包(x86)安裝的MFC/CRT-dll不同的MFC/CRT-dll。

嘗試使用Depends.exe並打開您的應用程序,然後在菜單中選擇「配置文件」。請在下面的輸出窗口中查看更詳細的說明。

0

您是否試圖運行調試版本?這可能會給你一個類似於0xc0150002的錯誤。嘗試發佈版本,或者可以針對靜態庫而不是動態庫進行編譯。如果你在發佈版本上遇到這個問題,那麼很有可能它是一個缺少的dll(在這種情況下嘗試運行Depends.exe)或者一個不正確的清單。

如果您對運行時DLL缺少依賴關係,您可以嘗試爲其創建一個部署項目,因爲這將檢測相應的運行時DLL並將其構建到您的安裝程序中。