詳細簡單的WIN下建立程序(C語言)

2021-10-06 12:23:44 字數 1971 閱讀 6176

標頭檔案:

建立函式:

createprocess函式

bool createprocess(//返回值是bool型,可以通過這個判斷是否建立成功

這裡說明下:

在第乙個引數和第二個引數裡都可以放你的.exe檔案的名字,具體做法有以下幾種:

檔案名字是字串 可以是可執行模組的絕對路徑,也可以是相對路徑,在後一種情況下,函式使用當前驅動器和目錄建立可執行模組的路徑。

2.第乙個位置寫為null,.exe檔案名字(注意是字串,可以先存字元陣列裡面)直接放在第二個位置,那麼這個字串中的第乙個被空格分隔的要素指定可執行模組名。如果檔名不包含副檔名,那麼.exe將被假定為預設的副檔名。若檔名中不包含路徑,windows將按照如下順序尋找這個可執行檔案:

1).當前應用程式的目錄。

2).父程序的目錄。

3).windows 系統目錄

4).列在path環境變數中的目錄

以下這些引數不用深究,,如果你只是做作業系統作業的話。。哈哈哈。。。

lpsecurity_attributes// 是否繼承程序控制代碼

lpsecurity_attributes//是否繼承執行緒控制代碼

bool binherithandles//是否繼承控制代碼

dword dwcreationflags//有沒有建立標誌

lpvoid lpenvironment// 是否使用父程序環境變數

lpctstr lpcurrentdirectory//使用父程序目錄作為當前目錄,可以自己設定目錄

lpstartupinfo lpstartupinfo//startupinfow結構體詳細資訊(啟動狀態相關資訊)

lpprocess_information//process_information結構體程序資訊

當然在建立之前要進行準備工作:

譬如對建立的程序的初始資訊結構體的大小的初始化,

程序控制代碼的設定。

#include

#include

intmain()

;//記錄結構體有多大,必須要引數

process_information pi;

//程序id,程序控制代碼,執行緒id,執行緒控制代碼存在於這個結構體

char lppath=

"test.exe"

;//這是用於新程序執行的檔案(當前目錄下的嗷用的是想對路徑)

createprocess

(null

,lppath,

null

,null

,false,0,

null

,null

,&si,

&pi)

;printf

("子程序id:%d\n"

,pi.dwprocessid)

;return0;

}

新建立出來的程序就是原來main程序的子程序。當然需要你先寫乙個test.cpp然後產生.exe檔案,再執行這個程式,你會發現你通過這個程式開啟了test.exe檔案。

中1.獲取當前程序id函式:

dword pid;

pid =

getcurrentprocessid()

;printf

("id:%d\n"

,pid)

;可以用來獲取父程序的id

也可以獲取子程序(寫在子程序中)

2.直接通過上面**裡面的pi.dwprocessid()來獲得

也就是你建立乙個程序的時候的pi可以看作是這個程序的虛擬物件。

詳細簡單的win中P,V操作(司機 售票員)C語言

如果還不知道建立子程序,參考 win中建立程序 正文開始 c語言windows環境下 建立訊號量 handle createsemaphore lpsecurity attributes lpsemaphoreattributes,安全屬性指標 long linitialcount,初始計數 lon...

Linux下 程序簡單建立vfork

上文,簡單得介紹了fork。這裡,我們來說一下vfork fork和vfork的區別 1.記憶體空間 fork 子程序拷貝父程序的資料段,段 vfork 子程序與父程序共享資料段 2.執行次序 fork 父 子程序的執行次序不確定 vfork 子程序先執行,在呼叫exec 或exit 之前與父程序資...

Linux下程序的建立

我們都知道,程序就是正在執行的程式。而在linux中,可以使用乙個程序來建立另外乙個程序。這樣的話,linux的程序的組織結構其實有點像linux目錄樹,是個層次結構的,可以使用pstree命令來檢視。在最上面是init程式的執行程序。它是所有程序的老祖宗。linux提供了兩個函式來建立程序。1.f...