1. dos編程是怎麼回事
DOS環境下的程序設計語言很多,包括:Fortran、BASIC、Pascal、C、C++、匯編語言等。
不同的語言有其各自的適用領域和特點。如果是科學計算應用,選Fortran語言比其它語言和合適。
lC和C++是比較流行的程序設計語言,但它們也不是萬能的。在C語言中做不到的,在C++語言中也做不到。
但用C++編寫程序,比用C寫程序更容易閱讀和交流,編程效率更好。
l匯編語言適合對硬體介面類快速響應的應用,但匯
編語言編寫、調試、維護很困難,不便於閱讀.具體使用哪一種語言,還是要具體情況具體分析,根據實際情況和需要進行選用。
2. 怎樣安裝dos環境中編程程序
雖然你這么問了
我想問你你知道什麼是dos
什麼是編譯器么
dos是過時的16位系統
你可以跑個turbo-c
不過我個人不認為這個東西現在還有什麼意義
3. 用DOS怎麼編寫程序
一,DOS,是英文Disk Operating System的縮寫,意思是「磁碟操作系統」,顧名思義,DOS主要是一種面向磁碟的系統軟體。說得簡單些,DOS就是人與機器的一座橋梁,是罩在機器硬體外面的一層「外殼」,有了DOS,就不必去深入了解機器的硬體結構,也不必去死記硬背那些枯燥的機器指令。只需通過一些接近於自然語言的DOS命令,就可以輕松地完成絕大多數的日常操作。此外,DOS還能有效地管理各種軟硬體資源,對它們進行合理的調度,所有的軟體和硬體都在DOS的監控和管理之下,有條不紊地進行著自己的工作,但是在操作不慎情況下也會死機。
二,DOS系統的命令包括內部命令和外部命令,能提供基本的文件操作,包括了建立目錄,輸入,輸出等。比如,MD建立目錄,CD改變目錄,RD重命名等,DOS無法編輯太復雜的程序,主要都是最基本的機器操作。但是,DOS提供一個 xx.bat批處理文件 ,BAT文件是一個可執行文件,包含一些DOS命令,可以自動執行某些特定的操作。
三,DOS寫批處理文件,需要熟記這些DOS命令的用法、格式、功能等 否則無法用DOS命令完成這些自動操作。
4. 用DOS編程
用什麼語言啊
很多語言有自動轉換函數
要不然
你得通過循環一個一個判斷並轉換ASC碼了
5. 怎樣在DOS環境下編程。
DOS下有edit可以編輯,也可以在TC集成環境下編輯,寫好的代碼,用TC編譯就是了
DOS下的編譯器主要是TC 2.0或TC 3.0,別的我就不清楚了 DOS下有gcc嗎?如果有,也可以用
其實寫代碼未必要到DOS環境下,你可以在記事本、寫字板中、UltraEdit中寫代碼,保存了時是DOS的文本格式就行,擴展名用.c 或.cpp即可 頭文件用.h 或.hpp,只是編譯和鏈接時才必需有開發環境的
6. 匯編語言編程序 DOS程序
;輸入一個字元串 統計其中數字的個數 達到10個的時候就自動停止並顯示
;滿10個數字自動退出
data segment
mess db 0dh,0ah,'Input String: $'
sz db 0 ;數字個數
SZ_C DB 100 DUP ('$')
CRLF DB 0DH,0AH,'$'
data ends
code segment
assume cs:code, ds:data
main proc far
start:
push ds
xor ax,ax
push ax
mov ax,data
mov ds,ax
;-------------------------
call crlf_p
mov ah,09
mov dx,offset mess
int 21h
next:
mov ah,01
int 21h
CMP AL,0DH
JNZ GOON
JMP DISP_1 ;顯示結果
GOON:
cmp al,'0'
jl NEXT
cmp al,'9'
jg NEXT
inc SZ
MOV BX,OFFSET SZ_C
MOV CX,0
MOV CL,SZ
ADD BX,CX
DEC BX
MOV [BX],AL
mov al,sz
cmp al,10
je disp_1
JMP NEXT
DISP_1:
CALL CRLF_P
CALL CRLF_P
mov al,SZ
CALL DISP_CZR
mov ah,09
lea dx,SZ_C
int 21h
;-----------------
CALL CRLF_P
;-------------------------
ENDD:
ret
main endp
;=========================================
DISP_CZR PROC NEAR ;顯示10進制數字子程序
xor ah,ah
;mov al,num
mov bl,100d
div bl
push ax
add al,30h
mov dl,al
mov ah,2
int 21h
pop ax
mov al,ah
xor ah,ah
mov bl,10d
div bl
add ax,3030h
push ax
pop dx
mov ah,2
int 21h
mov dl,dh
int 21h
MOV DL,':'
INT 21H
mov dl,' '
int 21h
RET
DISP_CZR ENDP
;==========================================
CRLF_P PROC NEAR ;回車換行子程序
mov ah,09
LEA DX,CRLF
INT 21H
RET
CRLF_P ENDP
;=========================================
code ends
end start
用MASM5.0匯編,用LINK連接,以下是運行實例:
Input String: HGSFHG3746GF376RSGF343
010: 3746376343
7. C語言編寫的DOS程序,怎樣轉換為windows窗口程序
#include <windows.h>
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("HelloWin") ;
HWND hwnd ; //窗口句柄
MSG msg ; //消息結構
WNDCLASS wndclass ; //窗口類結構
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = szAppName ;
//如果注冊窗口失敗,彈出錯誤對話框
if (!RegisterClass (&wndclass))
{
//在Windows 98中,大多數Unicode函數無法執行,MessageBoxW是個例外
MessageBox (NULL, TEXT ("This program requires Windows NT!"),
szAppName, MB_ICONERROR) ;
return 0 ;
}
//建立窗口
hwnd = CreateWindow (szAppName, // window class name
TEXT ("The Hello Program"), // window caption
WS_OVERLAPPEDWINDOW, // window style
CW_USEDEFAULT, // initial x position
CW_USEDEFAULT, // initial y position
CW_USEDEFAULT, // initial x size
CW_USEDEFAULT, // initial y size
NULL, // parent window handle
NULL, // window menu handle
hInstance, // program instance handle
NULL) ; // creation parameters
ShowWindow (hwnd, iCmdShow) ; //顯示窗口
UpdateWindow (hwnd) ; //重畫顯示區域
//消息循環,用於從消息隊列中取出消息,並做相應處理
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
}
//窗口消息處理程序
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;
switch (message)
{
case WM_CREATE:
PlaySound (TEXT ("hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC) ;
return 0 ;
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
//GetClientRect函數檢索一個窗口的客戶區坐標rect
GetClientRect (hwnd, &rect) ;
char buf[80];
sprintf(buf,"char 數據類型長度:%d\nstring 數據類型長度:%d\n",sizeof((char)'a'),sizeof("a"));
DrawText (hdc, TEXT (buf), -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
EndPaint (hwnd, &ps) ;
return 0 ;
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc(hwnd, message, wParam, lParam);
}
8. 用DOS能這樣編寫程序么
這是批處理程序。上面這些只是刪除相應擴展名的文件,應該跟快速啟動那裡無關。
一般說來,這些擴展名的文件是可以刪除的。
9. 如何在DOS下編譯C/C++程序
1, 找到VS的cl.exe所在目錄,把這目錄復制下來:
我的VS2008的CL.EXE目錄是在E:\Program Files\Microsoft Visual Studio 9.0\VC\bin,
VS2010可以類似的找到..
在'我的電腦'上點右鍵,
選右鍵菜單'屬性'->'高級'->'環境變數',
在彈出的環境變數設置框里找"PATH"這個變數, (在用戶變數或系統變數里都可以)
然後在"PATH"的值後面,用分號分隔,
把將才找到的路徑串復制進去,選確定.
2, 重新運行CMD開啟新的命令窗.
3, 輸入cl回車檢查PATH路徑是否生效.
//以上步聚是設置環境變數,只需設一次以後就好用了.以後每次要命令行下編譯C++程序,就從下面第4步開始.
4, 輸入vcvars32 ,運行cl.exe同一路徑下的vcvars32.bat,設置其它環境變數.
5, 寫一個helloworld程序,保存成hello.cpp, cl hello.cpp回車試試編譯正常不. 如果成功,則生成hello.exe文件.
//-----------------------------------------------------------
C/C++ 編譯器選項
-優化-
/O1 最小化空間 /Op[-] 改善浮點數一致性
/O2 最大化速度 /Os 優選代碼空間
/Oa 假設沒有別名 /Ot 優選代碼速度
/Ob<n> 內聯展開(默認 n=0) /Ow 假設交叉函數別名
/Od 禁用優化(默認值) /Ox 最大化選項。(/Ogityb2 /Gs)
/Og 啟用全局優化 /Oy[-] 啟用框架指針省略
/Oi 啟用內部函數
-代碼生成-
/G3 為 80386 進行優化 /Gh 啟用 _penter 函數調用
/G4 為 80486 進行優化 /GH 啟用 _pexit 函數調用
/G5 為 Pentium 進行優化 /GR[-] 啟用 C++ RTTI
/G6 對 PPro、P-II、P-III 進行優化 /GX[-] 啟用 C++ EH (與 /EHsc 相同)
/G7 對 Pentium 4 或 Athlon 進行優化 /EHs 啟用 C++ EH (沒有 SEH 異常)
/GB 為混合模型進行優化(默認) /EHa 啟用 C++ EH(w/ SEH 異常)
/Gd __cdecl 調用約定 /EHc extern "C" 默認為 nothrow
/Gr __fastcall 調用約定 /GT 生成纖維安全 TLS 訪問
/Gz __stdcall 調用約定 /Gm[-] 啟用最小重新生成
/GA 為 Windows 應用程序進行優化 /GL[-] 啟用鏈接時代碼生成
/Gf 啟用字元串池 /QIfdiv[-] 啟用 Pentium FDIV 修復
/GF 啟用只讀字元串池 /QI0f[-] 啟用 Pentium 0x0f 修復
/Gy 分隔鏈接器函數 /QIfist[-] 使用 FIST 而不是 ftol()
/GZ 啟用堆棧檢查(/RTCs) /RTC1 啟用快速檢查(/RTCsu)
/Ge 對所有函數強制堆棧檢查 /RTCc 轉換為較小的類型檢查
/Gs[num] 控制堆棧檢查調用 /RTCs 堆棧幀運行時檢查
/GS 啟用安全檢查 /RTCu 未初始化的本地用法檢查
/clr[:noAssembly] 為公共語言運行庫編譯
noAssembly - 不產生程序集
/arch:<SSE|SSE2> CPU 結構的最低要求,以下內容之一:
SSE - 啟用支持 SSE 的 CPU 可用的指令
SSE2 - 啟用支持 SSE2 的 CPU 可用的指令
-輸出文件-
/Fa[file] 命名程序集列表文件 /Fo<file> 命名對象文件
/FA[sc] 配置程序集列表 /Fp<file> 命名預編譯頭文件
/Fd[file] 命名 .PDB 文件 /Fr[file] 命名源瀏覽器文件
/Fe<file> 命名可執行文件 /FR[file] 命名擴展 .SBR 文件
/Fm[file] 命名映射文件
-預處理器-
/AI<dir> 添加到程序集搜索路徑 /Fx 將插入的代碼合並到文件
/FU<file> 強制使用程序集/模塊 /FI<file> 命名強制包含文件
/C 不抽出注釋 /U<name> 移除預定義宏
/D<name>{=|#}<text> 定義宏 /u 移除所有預定義宏
/E 預處理到 stdout /I<dir> 添加到包含搜索路徑
/EP 預處理到 stdout,沒有 #line /X 忽略「標准位置」
/P 預處理到文件
-語言-
/Zi 啟用調試信息 /Ze 啟用擴展(默認)
/ZI 啟用「編輯並繼續」調試信息 /Zl 省略 .OBJ 中的默認庫名
/Z7 啟用舊式調試信息 /Zg 生成函數原型
/Zd 僅有行號調試信息 /Zs 只進行語法檢查
/Zp[n] 在 n 位元組邊界上包裝結構 /vd{0|1} 禁用/啟用 vtordisp
/Za 禁用擴展(暗指 /Op) /vm<x> 指向成員的指針類型
/Zc:arg1[,arg2] C++ 語言一致性,這里的參數可以是:
forScope - 對范圍規則強制使用標准 C++
wchar_t - wchar_t 是本機類型,不是 typedef
- 雜項 -
@<file> 選項響應文件 /wo<n> 發出一次警告 n
/?, /help 列印此幫助消息 /w<l><n> 為 n 設置警告等級 1-4
/c 只編譯,不鏈接 /W<n> 設置警告等級(默認 n=1)
/H<num> 最大外部名稱長度 /Wall 啟用所有警告
/J 默認 char 類型是 unsigned /Wp64 啟用 64 位埠定位警告
/nologo 取消顯示版權消息 /WX 將警告視為錯誤
/showIncludes 顯示包含文件名 /WL 啟用單行診斷
/Tc<source file> 將文件編譯為 .c /Yc[file] 創建 .PCH 文件
/Tp<source file> 將文件編譯為 .cpp /Yd 將調試信息放在每個 .OBJ 中
/TC 將所有文件編譯為 .c /Yl[sym] 為調試庫插入 .PCH 引用
/TP 將所有文件編譯為 .cpp /Yu[file] 使用 .PCH 文件
/V<string> 設置版本字元串 /YX[file] 自動 .PCH
/w 禁用所有警告 /Y- 禁用所有 PCH 選項
/wd<n> 禁用警告 n /Zm<n> 最大內存分配(默認為 %)
/we<n> 將警告 n 視為錯誤
-鏈接-
/MD 與 MSVCRT.LIB 鏈接 /MDd 與 MSVCRTD.LIB 調試庫鏈接
/ML 與 LIBC.LIB 鏈接 /MLd 與 LIBCD.LIB 調試庫鏈接
/MT 與 LIBCMT.LIB 鏈接 /MTd 與 LIBCMTD.LIB 調試庫鏈接
/LD 創建 .DLL /F<num> 設置堆棧大小
/LDd 創建 .DLL 調試庫 /link [鏈接器選項和庫]
10. 怎麼在DOS下編譯C++程序
對於初學c/c++的人,我建議最好在使用dos 環境下的編譯器,這樣不至於在GUI的環境(比如vc、bcb)里給弄糊塗了。那麼在dos環境下如何使用c/c++的編譯器了,其實很簡單,下面用vc為例;
首先你告訴LIB和INCLUDE在什麼地方,在就告訴編譯的程序在什麼地方,這樣我們可以在任何目錄下都可以使用編譯器,要作到上面的,就理所當然要設定path了!設定如下:
假定你的vc安裝在如下目錄:
C:\Program Files\Microsoft Visual Studio\VC98\Include
C:\Program Files\Microsoft Visual Studio\VC98\MFC\Include
C:\Program Files\Microsoft Visual Studio\VC98\Lib
C:\Program Files\Microsoft Visual Studio\VC98\MFC\Lib
C:\Program Files\Microsoft Visual Studio\VC98\Bin
C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin
那麼寫一個批處理文件(autoexec.bat),內容如下:
set path=C:\Program Files\Microsoft Visual Studio\VC98\Bin;C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin (找到vc的編譯器cl.exe位置,同時也可以調用MSPDB60.DLL文件)
set Include=C:\Program Files\Microsoft Visual Studio\VC98\Include;C:\Program Files\Microsoft Visual Studio\VC98\MFC\Include
set Lib=C:\Program Files\Microsoft Visual Studio\VC98\Lib;
C:\Program Files\Microsoft Visual Studio\VC98\MFC\Lib
當然如果你不用mfc也可以這樣:
set path=C:\Program Files\Microsoft Visual Studio\VC98\Bin;C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin
set Include=C:\Program Files\Microsoft Visual Studio\VC98\Include
set Lib=C:\Program Files\Microsoft Visual Studio\VC98\Lib
如果你是使用的bcb的編譯器,設置方法與上面類似!
那麼如何在dos 用c/c++的編譯器編譯程序呢?
那就更簡單了!如下:
C:\> CL test.cpp <回車>(呵呵,當然你可以在其他目錄下去執行,只要是你編譯的cpp文件的目錄就行)
至於執行cl.exe有些什麼參數實現條件編譯,就要自己去查了!:)
當然,上面的方法不適合開發大型的項目,因為很明顯文檔、程序管理不方便!