※ 引述《aguai.bbs@ptt.cc (阿怪)》之銘言:
> 不好意思
> 我想是我沒說清楚
> 好比我用WatcomC的時候
> 在沒有#include "windows.h"時
> 我事實上可以寫DOS的程式
> (我有實際拿到DOS底下試過)
> 但在VC底下產生的EXE檔甚至連helloworld
> 都會有不能執行的情形
> (因為他們是windows主控台程式而非DOS程式?:P)
> 所以我問問題的方法顯示錯的
> 很抱歉
> 我該問的是
> 這些執行檔(主要指exe/dll)相互依存的程度到底有多高
> 那些ThirdParty發展出的程式庫
> 對系統內建的各式各樣DLL們又有多高的需求量?
我建議你找個可以解析執行檔格式的工具
把你實際編譯出來的檔案分析一下
例如裝了 VC 應該有個 dumpbin
就可以看看到底你的執行檔有 import 哪些 DLL 內的哪些 function ...
至於 VC 產生的那個叫 PE 格式
目前是用在 32/64-bit Windows 上面跑的
若要真的拿到純 DOS 執行也可以,但結果就是你會看到類似
"This program cannot be run in DOS mode" 這種輸出,然後程式就結束了
這應該就是你所謂的「不能執行」吧
(會有這現象是因為,真的有一段程式是用來顯示上面那段文字
那段程式存在 PE 執行檔開頭的區域,叫做 DOS stub)
--
@, ●秘密情人● (bbs.cse.ttu.edu.tw)
~\ ◆ Post From: 220-139-209-93.dynamic.hinet.net ◆