今天遇到一個問題,需要在程序開始時打開一個txt文檔,剛開始用system(),但這樣其實做是有問題的。
1,system()
用sestem()打開一個文件後,本程序等待,直到打開的文件關閉後本程序才繼續執行。
不理解的話請看下面這個例子:
<span style="white-space:pre"> </span>cout<<"a"<<endl;
system("說明.txt");
cout<<"b"<<endl;
執行時先輸出a,然後打開 《說明.txt 》 文檔,當文檔關閉後才輸出b。
2,ShellExecute()
用這個函數的話就能解決上述問題,它的用法是ShellExecute(NULL,"open","說明.txt",NULL,NULL,SW_SHOW)
它返回HINSTANCE,強制轉換爲整數後比32大執行成功,比32小執行失敗
if( (int)ShellExecute(NULL,"open","說明.txt",NULL,NULL,SW_SHOW)<32 )
return false;
這個函數還可以打開一個網頁,和一些其他操作。
3,其他
其他還有WinExec(),它只對16位機子兼容。
execle(),它不是標準庫函數,在process.h裏,具體用法大家自己百度吧。