日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

VS2010+WinXP+MFC程序 无法定位程序输入点于动态链接库

發布時間:2024/4/13 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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
  • 高票回答中的代碼可能并不能解決問題,第二個答案中,答主貼了自己的一篇博客 希望對你萌有所啟發,反正是啟發到我了(∩_∩)
  • 對于我的程序,我定位到出問題的地方是托盤,托盤涉及到的東西比較底層。現在我把托盤功能注釋后可以再WinXP上運行了,接下來看看能否對托盤進行兼容處理,使之在XP上也能運行。

4、后續

? WinXP是支持托盤圖標的,之所以出錯,是因為NOTIFYICONDATA結構也是不斷更新升級的。原實現托盤的代碼如下:

1 //設置托盤圖標 2 m_notify.cbSize=sizeof NOTIFYICONDATA; 3 m_notify.hWnd=this->m_hWnd; 4 m_notify.uID=IDR_MAINFRAME; 5 m_notify.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME)); 6 strcpy(m_notify.szTip,"XML解析程序"); 7 m_notify.uCallbackMessage=WM_USER_NOTIFYICON; 8 m_notify.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP; //生成托盤 9 Shell_NotifyIcon(NIM_ADD,&m_notify);

? 其中第二行 cbSize的賦值在WinXP環境下應改為:

m_notify.cbSize=sizeof NOTIFYICONDATA_V3_SIZE;

具體原因,參考:http://blog.csdn.net/kvs112219/article/details/6069936

以上。

轉載于:https://www.cnblogs.com/JJJanepp/p/6346662.html

總結

以上是生活随笔為你收集整理的VS2010+WinXP+MFC程序 无法定位程序输入点于动态链接库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。