一般创建线程用CreateThread(),创建进程用CreateProcess().
创建进程:
#include "iostream.h"
#include "windows.h"void main()
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si)); //needed
si.cb =sizeof(STARTUPINFO); if(CreateProcess(TEXT("C:\\Winnt\\system32\\Notepad.exe"),NULL,NULL,
NULL,FALSE,CREATE_DEFAULT_ERROR_MODE| CREATE_NEW_CONSOLE,
NULL,NULL,&si,&pi)==FALSE)
{
cout <<GetLastError()<<endl;
cout <<"创建进程失败,按ENTER键退出\n";
cin.get ();
return;
}
cin.get ();
}创建线程:#include "iostream.h"
#include "windows.h"int iCounter=0;
CRITICAL_SECTION criCounter;DWORD WINAPI ThreadA(LPVOID lparam)
{
int* id=(int*)lparam;
for(int i=0;i<8;i++)
{
EnterCriticalSection(&criCounter);
int iCopy=iCounter;
Sleep(50);
iCounter=iCopy+1;
cout <<"Thread Num:"<<*id <<" iCounter:"<<iCounter<<endl;
LeaveCriticalSection(&criCounter);
}
return 0;
}void main()
{
InitializeCriticalSection(&criCounter);
HANDLE *handle=new HANDLE[3];
int *num=new int[3];
DWORD *dwThreadId=new DWORD[3];
for(int i=0;i<3;i++)
num[i]=i;
for( i=0;i<3;i++)
handle[i]=CreateThread(NULL,0,ThreadA,(LPVOID)&num[i],NULL,&dwThreadId[i]);
WaitForMultipleObjects(3,handle,TRUE,INFINITE);
DeleteCriticalSection(&criCounter);

cin.get ();
}