程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> VS2010+WinXP+MFC順序 無法定位順序輸出點於靜態鏈接庫

VS2010+WinXP+MFC順序 無法定位順序輸出點於靜態鏈接庫

編輯:關於C++

VS2010+WinXP+MFC順序 無法定位順序輸出點於靜態鏈接庫。本站提示廣大學習愛好者:(VS2010+WinXP+MFC順序 無法定位順序輸出點於靜態鏈接庫)文章只能為提供參考,不一定能成為您想要的結果。以下是VS2010+WinXP+MFC順序 無法定位順序輸出點於靜態鏈接庫正文


1、問題描繪

原開發環境:Win7 64位旗艦版,VS2010,ThinkPad T460

呈現問題:自己開發的MFC順序在WinXP環境下無法正常運轉,彈框“無法定位順序輸出點InitializeConditionVariable於靜態鏈接庫kernel32.dll”

重新搭建開發環境:WinXP SP3 專業版,VS2010,GIGABYTE某motherboard(原諒辦公室沒別的閒暇主機了)

問題照舊存在:重新編譯經過,但運轉時還是彈框“無法定位順序輸出點InitializeConditionVariable於靜態鏈接庫kernel32.dll”,我在順序入口下的斷點,都沒有執行到。

2、緣由

  (1)假如並不是自己開發的順序:普通就是不兼容,但也有能夠是別的緣由。

  (2)假如想讓自己開發的順序在WinXP零碎上兼容:不要低估微軟,更不要高估寄幾。普通沒有別的烏七八糟的緣由,只是由於WinXP零碎的kernel32.dll中並沒有InitializeConditionVariable。之前在Win7上開發的時分,你或許MFC順序調用了kernel32.dll中的InitializeConditionVariable,所以在XP上基本運轉不了。普通是多線程處置不當形成的。

3、處理辦法

  (1)假如並不是自己開發的順序:想要嘗試處理的話,請參照百度出來的辦法,但是一定要提早預備好WinPE零碎(U盤啟動盤),並且對原kernel32.dll文件停止備份!由於交換kernel32.dll文件極有能夠使你的操作零碎開不開機。

  (2)假如想讓自己開發的順序在WinXP零碎上兼容:

  • 最好在WinXP上搭建開發環境,再調試代碼。
  • 最好直接Google,中文材料質量普通。不要問我怎樣知道的o(≧口≦)o
  • 雖然只要兩個答案,但都是精髓。 參考鏈接:http://stackoverflow.com/questions/2847960/procedure-entry-point-initializeconditionvariable-could-not-be-located-in-kernel
  • 高票答復中的代碼能夠並不能處理問題,第二個答案中,答主貼了自己的一篇博客 https://www.justsoftwaresolutions.co.uk/threading/implementing-a-thread-safe-queue-using-condition-variables.html 希望對你萌有所啟示,反正是啟示到我了(∩_∩)
  • 關於我的順序,我定位到出問題的中央是托盤,托盤觸及到的東西比擬底層。如今我把托盤功用正文後可以再WinXP上運轉了,接上去看看能否對托盤停止兼容處置,使之在XP上也能運轉。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved