国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
進程的創(chuàng)建
Windows 環(huán)境下,進程就是一個正在運行的程序實例.線程是進程內(nèi)執(zhí)行代碼的獨立實體.創(chuàng)建一個進程后,系統(tǒng)會為該進程創(chuàng)建一個主線程.
通常通過調(diào)用 CreateProcess 函數(shù)創(chuàng)建進程,該函數(shù)原形如下:
 
BOOL CreateProcess(
LPCSTR lpApplicationName, 
//可執(zhí)行文件的名稱
LPSTR lpCommandLine, 
//指定了要傳遞給執(zhí)行模塊的參數(shù)
NULL,
//進程安全性,設為 NULL 表示使用默認安全屬性LPSECURITY_ATTRIBUTES lpProcessAttributes,
//線程安全性,設為 NULL 表示使用默認安全屬性
LPSECURITY_ATTRIBUTES lpThreadAttributes
//指定當前進程的可繼承句柄是否可以被新進程繼承
BOOL bInheritHandle,
//指定了新進程的優(yōu)先級和其它創(chuàng)建標志
DWORD dwCreationFlags,
LPVOID lpEnvironment,
//指定了新進程使用的環(huán)境變量
LPCSTR lpCurrenDirectory,
//新進程使用的目錄
LPSTARUPINFO lpStartupinfo, 
//指定新進程的顯示信息
//返回新建進程的標志信息,ID ,句柄等
LPPROCESS_INFORMATION lpProcessInformation
)
 
上面的參數(shù)的數(shù)據(jù)類型是 Windows 自定義的數(shù)據(jù)類型,具體定義在 WINDEF.h文件中,下面列出一部分常用的數(shù)據(jù)類型
typedef unsigned long   DWORD;
typedef int           BOOL;
typedef unsigned char   BYTE;
typedef unsigned short WORD
typedef float          FLOAT;
typedef void far      *LPVOID;
typedef int           INT;
typedef unsigned int    UINT;
 
lpProcessInformation 參數(shù)是一個指向 PROCESS_INFORMATION 結構的指針,CreateProcess 函數(shù)返回之前會初始化這些結構成員,結構定義如下:
typedef struct
{
       HANDLE hProcess;   //新建進程的內(nèi)核句柄
       HANDLE hThread;   //新建進程中主線程的內(nèi)核句柄
       DWORD dwProcessId;   //新建進程的ID
       DOWRD dwThreaId;    //新建進程的主線程ID
}
 
 
創(chuàng)建進程以后,必須調(diào)用 CloseHandle 函數(shù)關閉所創(chuàng)建的進程內(nèi)核對象和線程內(nèi)核對象,否則進程雖然終止了,但是該進程占用的資源依然沒有釋放
 
完整示例代碼如下(該程序運行的時候會自動打開系統(tǒng)自帶的記事本程序):
 
#include <windows.h>
 
 
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
    char *szCommandLine = "notepad.exe";
    STARTUPINFO si = {sizeof(si)}; //初始化STARTUPINFO 結構的大小
    PROCESS_INFORMATION pi; //該變量保存新建進程的標志信息
    BOOL bRet = ::CreateProcess(NULL, //不在此指定可執(zhí)行的文件名
                                szCommandLine, //命令行參數(shù)
                                NULL, //默認進程安全屬性
                                NULL, //默認線程安全屬性
                                FALSE, //指定當前進程內(nèi)的句柄不可以被新進程繼承
                                NULL,   //使用默認的創(chuàng)建方式
                                NULL,   //使用本進程的環(huán)境變量
                                NULL,   //使用本進程的目錄
                                &si,    //使用默認的顯示方式
                                &pi); //保存新建進程的標志信息
    if(bRet)
    {
        //關閉新建進程和主線程的句柄
        ::CloseHandle(pi.hProcess);
        ::CloseHandle(pi.hThread);
    }
    return 0;
}
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VC 中進程與多進程管理的方法
利用Win32 Debug API打造自己的調(diào)試器Debugger
CSDN技術中心 Windows管道技術簡述
進程的創(chuàng)建和終止(超詳細)
控制臺程序的標準句柄的重定向 - CSDN博客
VC中如何打開指定程序或者文件(轉)
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服