線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1859
推到 Plurk!
推到 Facebook!

請問從16bits轉成32bits, 為何在Windows 2000 可行, 但XP不行?

答題得分者是:RedSnow
ralph
初階會員


發表:41
回覆:82
積分:29
註冊:2003-02-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-11-23 13:05:39 IP:66.171.xxx.xxx 未訂閱
請教各位大大: 是否有一些functions (strcpy,..)是16bits, 而不是32bits? 我有一程式從16bits轉成32bits後, 在Windows 2000可執行, 但在WIndows XP執行中會freeze, 為何? 謝謝!
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-11-23 14:13:28 IP:61.230.xxx.xxx 未訂閱
ralph 您好:    Windows 2000 與 Windows XP 都屬於 NT 平台的 Windows,換言之;它們都屬於 32 位元的作業環境,因此您所講的問題應該是不成立的,除非您使用到了與系統有關的 Undocumented API,那麼就有可能因為那個 API 的內部運作方式有所變更而造成問題。    會讓程式凍結住的原因很多,很難一猜就中,您試著自己除錯看看吧,這樣子比較實際些,如果您能找出問題出在那一段程式,而您卻無法看出問題的所在,那麼您再將該段程式碼貼上來,這樣子大家比較能提出切確的建議或說明。      7 天天敲鍵盤 v 時時按滑鼠 8
ralph
初階會員


發表:41
回覆:82
積分:29
註冊:2003-02-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-11-24 02:34:31 IP:66.171.xxx.xxx 未訂閱
RedSnow你好: 請問何處可找到與系統有關的 Undocumented API的資料? 何謂Undocumented API? 我手上的codes已有10-20年, 太多人改過. 我想知道何者function, MFC, or else 是屬於Undocumented API. 謝謝!
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-11-24 10:46:01 IP:59.115.xxx.xxx 未訂閱
ralph 您好:    "Undocumented API" 是指 "未公開的 API",既然是未公開的 API,那麼 Microsoft 就不對那些 API 負責,程式設計師也不能向 Microsoft 要求提供那些未公開 API 的資料或技術支援,因為是未公開的,所以 Microsoft 可以隨時變更那些 API 的作用或是運作方式而無須對外公佈,因此若有設計師使用了那些未公開的 API,就必須要承擔一定的風險。 雖說是 Undocumented 的 API,但就我的印象中就是有人要努力的去挖,因此市面上仍能買得到說明 Undocumented API 的專書,至於何處可買到?那我就無法直接告訴您,因為我已經很久沒去逛書店了,您到書店逛一逛或是網路上搜尋一下應該會有所獲的。 7 天天敲鍵盤 v 時時按滑鼠 8
ralph
初階會員


發表:41
回覆:82
積分:29
註冊:2003-02-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-11-24 11:23:57 IP:66.171.xxx.xxx 未訂閱
RedSnow你好: 是否有網站可查此function是否是undocumented API? 謝謝!
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-11-24 11:48:19 IP:59.115.xxx.xxx 未訂閱
ralph 您好:
引言:是否有網站可查此function是否是undocumented API?
我沒有這方面現成的資訊,您不妨自己找找看。 我個人是覺得;當您想要瞭解某個 API 時,就透過 Help 或是到 MSDN 去查,如果都沒有那個 API 的說明,那您就透過搜尋引擎、討論區....等途徑來查詢相關資訊,如果都無法找到相關的參考資料,您再假設該 API 為 Undocumented API,這樣子或許會比較恰當些。 7 天天敲鍵盤 v 時時按滑鼠 8
ralph
初階會員


發表:41
回覆:82
積分:29
註冊:2003-02-04

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-11-24 12:25:10 IP:66.171.xxx.xxx 未訂閱
謝謝你,RedSnow 讓我受益良多! 又有多一問. 是否除了undocument API外, 是否還有其他可能? 是否可以查出那些是適用於Windows 2000而不適用XP?
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-11-24 13:09:07 IP:59.115.xxx.xxx 未訂閱
ralph 您好:
引言:是否除了undocument API外, 是否還有其他可能? 是否可以查出那些是適用於Windows 2000而不適用XP?
在找到正確的原因並加以解決之前,都不能排除其它的可能性,就如我之前所提到的,可能性或許會很廣,最好的辦法還是對程式做追蹤除錯。 BCB 中有關 Windows SDK 的 Help 資料似乎蠻舊的,裡邊對於各個 API 的適用環境並未區分 WIN 2K 或是 WIN XP (可以查看 SDK Help 中的 Overview)?如果某個 API 確實會有 2K 與 XP 的區分,那麼查看 MSDN 應該仍是最佳途徑,畢竟那是 Microsoft 的技術支援站台,資訊的正確性與參考價值都較高,如果 MSDN 對某個 API 有提到 2K 與 XP 的差異,那就以它寫的為準吧。 7 天天敲鍵盤 v 時時按滑鼠 8
ralph
初階會員


發表:41
回覆:82
積分:29
註冊:2003-02-04

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-11-25 15:32:57 IP:66.171.xxx.xxx 未訂閱
請問 Windows 2000是否 16-bits and 32-bits 並存, 故看不出程式是否為真正32-bits? 有何prgram 可檢查此prgram是真正32bits? 謝謝!
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-11-26 01:08:49 IP:59.115.xxx.xxx 未訂閱
ralph 您好:
引言:請問 Windows 2000是否 16-bits and 32-bits 並存, 故看不出程式是否為真正32-bits? 有何prgram 可檢查此prgram是真正32bits?
Windows 2000 是 32 位元的作業系統,但是它為了向前相容,保留了執行 16 位元程式的能力,在執行 16 位元的程式時,是以模擬 16 位元環境的方式來進行的。 在我的印象中,BCB6 製作出來的程式應該都是 32 位元的,至於查看程式是否為 32bit 的?在我印象中 (不確定適用的環境與版本) 好像視窗系統有個 "快速檢視" 的功能可以查看程式檔案的表頭資訊,但是該功能又好像是選擇性安裝的,您不妨查查看。 7 天天敲鍵盤 v 時時按滑鼠 8
ralph
初階會員


發表:41
回覆:82
積分:29
註冊:2003-02-04

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-11-26 09:05:07 IP:66.171.xxx.xxx 未訂閱
RedSnow你好: 快速檢視? 是否Alt "雙擊"? 如何看檔案開頭 ? 查看程式檔案的表頭資訊, 如何才是32bits? 謝謝!
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-11-26 22:45:51 IP:61.217.xxx.xxx 未訂閱
ralph 您好:
引言:快速檢視? 是否Alt "雙擊"?
不是的,我是憑印象寫的,可能是 Windows 98 或是 Windows NT 4.0 這些較舊的操作環境中提供的,我不確定 Windows 2000 或 Windows XP 有無提供相同功能?
引言:如何看檔案開頭 ? 查看程式檔案的表頭資訊, 如何才是32bits?
一時半刻我還真的找不到這種查看程式,但是我手邊有一個程式可以查看程式檔的 PE (Portable Executable) 表頭資訊,您先試試看吧: FileAlyzer http://www.spybot.info/ct/filealyzer/index.html 檔案有 PE 表頭資訊者,應該就是 32bit 的程式了 (16bit 程式的表頭是 NE - New Executable 的格式)。 7 天天敲鍵盤 v 時時按滑鼠 8
ralph
初階會員


發表:41
回覆:82
積分:29
註冊:2003-02-04

發送簡訊給我
#13 引用回覆 回覆 發表時間:2005-11-27 01:13:49 IP:66.171.xxx.xxx 未訂閱
太感謝你的回答! One more question! 64bits 如何確認表頭資訊者
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#14 引用回覆 回覆 發表時間:2005-11-27 20:48:45 IP:61.217.xxx.xxx 未訂閱
ralph 您好:
引言:64bits 如何確認表頭資訊者
真是抱歉,我沒有這樣的環境,因此還沒研究到 64bit 這個部份,下列有一些相關的網頁,有興趣的話可以去瀏覽一下,看看能不能找到您想要的資訊? Executable File Types http://www.mega-tokyo.com/osfaq2/index.php/ReferenceAllInOne?PHPSESSID=bbcbba073c6099560154e1a68a1b41de 64-bit Windows http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/64bitwindows.asp 7 天天敲鍵盤 v 時時按滑鼠 8
ralph
初階會員


發表:41
回覆:82
積分:29
註冊:2003-02-04

發送簡訊給我
#15 引用回覆 回覆 發表時間:2005-11-27 23:13:47 IP:66.171.xxx.xxx 未訂閱
謝謝! 
系統時間:2024-04-20 8:13:26
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!