C 下呼叫DOS程式的一些經驗

2021-05-24 11:14:20 字數 965 閱讀 1295

首先dos下的程式執行的時候對於其路徑的長度是有要求的。

如果路徑過長,系統會提示無法執行該程式,這個時候把程式挪個位置就好了。

其次,在把dos程式嵌入自己的程式的時候,通常要進行一下幾個步驟

1、建立乙個新的執行緒

dos程式要以乙個新執行緒的形式執行,因此要建立system.diagnostics.process類。

2、設定執行緒屬性

通常為了不讓dos程式在執行的時候彈出多餘的視窗,通常會設定以下屬性

system.diagnostics.process.startinfo.useshellexecute;              // 是否使用系統的shell

system.diagnostics.process.startinfo.redirectstandardinput;    // 是否重新定義輸入

system.diagnostics.process.startinfo.redirectstandardoutput; // 是否重新定義輸出,如果不重新定義的話,輸出流會導向標準輸出流(待考據),無法讀取輸出

system.diagnostics.process.startinfo.createnowindow;           // 是否建立新的視窗

3、啟動執行緒

對執行緒的例項呼叫start函式即可

4、輸入命令

用system.diagnostics.process.standardinput.writeline()函式進行輸入,引數為字串形式的命令。

此函式在輸入命令之後會產生自動執行該命令的效果,類似於在字串末尾補上了回車字元(待考證)

5、等待執行緒退出

執行緒退出執行執行緒例項的close函式即可。

但是在執行close之前需要呼叫waitforexit函式等待程式正常退出。

因此等待執行緒退出的步驟是

1、讀取執行緒輸出流

2、等待執行緒退出

3、關閉執行緒

debug的一些經驗

1.儘量減少debug,少用debug,優秀的程式設計師總是花80 的時間來思考如何解決問題,20 的時間來動手完成 而糟糕的程式設計師總是用20 的時間去寫 80 的時間去除錯 動手之前盡量想好如何去做,並且已經為你自己的思路做了充分的實驗。2.盡可能的提高debug的效率,設定合適的斷點,使用快...

重構的一些經驗

當我們已經對設計模式倒背如流時,卻往往發現在實際 編寫中有生搬硬套的感覺。設計模式是前人經驗的總結,直接拿來用合不合適呢?這讓我想起了大學一位老師告訴我們的一條學習的道路 知識,理論,智慧型 設計模式是很一種優雅的 智慧型 但對於我們初學者來說還僅僅是留存於文字的 知識 把 知識 融合到自己的開發中...

t sql的一些經驗

1 儲存過程的3種傳回值 1.以return傳回整數 2.以output格式傳回引數 3.recordset 2 字串型別的變數需要初始化後再使用,不然永遠是空 declare fieldssql varchar max set fieldssql set fieldssql fieldssql a...