Windows Via C/C++: CreateThreadº¯Êý
CreateThreadº¯Êý
Ç°Ãæ½²¹ý£¬½ø³ÌµÄÖ÷Ï̻߳áÔÚCreateProcessµ÷ÓÃʱ×Ô¶¯´´½¨¡£¼ÙÈçÄãÒªÊÖ¹¤´´½¨Ị̈߳¬Äã¿ÉÒÔµ÷ÓÃCreateThreadº¯Êý£º
HANDLE CreateThread(
PSECURITY_ATTRIBUTES psa,
DWORD cbStackSize,
PTHREAD_START_ROUTINE pfnStartAddr,
PVOID pvParam,
DWORD dwCreateFlags,
PDWORD pdwThreadID);
ϵͳÔÚµ÷ÓÃCreateThreadʱ´´½¨Ò»¸öÏß³ÌÄں˶ÔÏó£¬Ïß³ÌÄں˶ÔÏó²¢·ÇÏ̱߳¾Éí£¬ËüÊDzÙ×÷ϵͳÓÃÀ´¹ÜÀíÏ̵߳ÄÊý¾Ý½á¹¹£¬ÆäÖаüº¬Ï̵߳Äͳ¼ÆÐÅÏ¢¡£ÕâÓë½ø³ÌºÍ½ø³ÌÄں˶ÔÏóµÄ¹ØÏµÊÇÀàËÆµÄ¡£
ϵͳ´Ó½ø³ÌµÄµØÖ·¿Õ¼äÖÐΪÏß³ÌÕ»·ÖÅä¿Õ¼ä¡£ÐµÄÏ̺߳ʹ´½¨ËüµÄÏß³ÌÔËÐÐÔÚͬÑùµÄ½ø³ÌÉÏÏÂÎÄÖУ¬Òò´ËÐÂÏ߳̿ÉÒÔ·ÃÎʽø³ÌµÄ¾ä±ú±í¡¢µØÖ·¿Õ¼äÒÔ¼°ÆäËü´¦ÔÚͬһ½ø³ÌÉÏÏÂÎÄÖеÄËùÓÐÏ̵߳ĶÑÕ»£¬ÕâʹµÃͬһ½ø³ÌÄڵĶà¸öÏß³ÌÏ໥ͨÐűäµÃ¼«Îª¼òµ¥¡£
×¢Òâ CreateThreadº¯ÊýÊÇÓÃÀ´´´½¨Ï̵߳ÄWindows APIº¯Êý¡£¼ÙÈçÄãʹÓÃC/C++´úÂë´´½¨ÐÂỊ̈߳¬ÄãÓ¦¸Ã±ÜÃâʹÓÃCreateThread£¬¶øÓÃ΢ÈíC++ÔËÐÐʱ¿âº¯Êý_beginthreadex´úÌæ¡£±¾ÕÂÉÔºó»á½²µ½_beginthreadexº¯Êý²¢½âÊÍÓÃËü´úÌæCreateThreadµÄÔÒò¡£
ÏÂÃæÎÒÃÇÀ´¿´¿´CreateThreadµÄ²ÎÊý¡£
psa
psaÊÇSECURITY_ATTRIBUTES½á¹¹µÄÖ¸Õ룬ÏòÆä´«µÝNULL±íʾ´´½¨µÄÏß³ÌÄں˶ÔÏóʹÓÃĬÈϵݲȫÊôÐÔ¡£Èç¹ûÏëÈÃÐÂÏß³ÌÄں˶ÔÏóµÄ¾ä±úÄܱ»×Ó½ø³Ì¼Ì³Ð£¬ÄãÓ¦¸ÃΪÆä´«µÝÒ»¸öSECURITY_ATTRIBUTES½á¹¹µÄÖ¸Õ룬²¢½«bInheritHandleÓòÉèÖÃΪTRUE£¬µÚ3Õ¶ԴËÓÐÏêϸµÄ˵Ã÷¡£
cbStackSize
[¹ØÓÚcbStackSizeµÄ½âÊͲο¼ÁËMSDN£¬ÓëÔÎÄÓгöÈ룬²ÎÔÄhttp://msdn.microsoft.com/en-us/library/ms686774%28VS.85%29.aspx
]
ÿ¸öÏ̵߳ĶÑÕ»ÓÉÔ¤Áô£¨reverse£©¿Õ¼äºÍϵͳ×î³õΪÆäÌá½»£¨commiteted£©µÄÒ³Ãæ¿Õ¼ä×é³É¡£Ô¤Áô¿Õ¼äµÄ´óС±íʾϵͳÔÚ½ø³ÌµÄÐéÄâµØÖ·¿Õ¼äÖÐΪÏß³ÌÕ»·ÖÅäµÄ×Ü´óС£¬Òò´ËÔ¤Áô¿Õ¼äµÄ´óСÊܽø³ÌµØÖ·¿Õ¼ä´óСµÄÖÆÔ¼¡£³õʼÌá½»µÄÒ³Ãæ¿Õ¼äʹÓÃʱ²Å»áÔØÈëÄڴ棬Èç¹ûÏß³ÌÔËÐÐʱËùÐèµÄ¿Õ¼ä³¬¹ý³õʼÌá½»µÄÒ³Ãæ¿Õ¼ä´óС£¬ÏµÍ³»á´ÓÏ̱߳£Áô¿Õ¼äÖÐΪÆä¼ÌÐøÌá½»Ò³ÃæÎļþ£¬Ö±µ½Ï̵߳ÄÔ¤Áô¿Õ¼ä½öÊ£ÏÂÒ»Ò³´óС£¬ÕâÒ»Ò³×÷Ϊ“ÉÚ±ø”ÓÃÀ´·ÀÖ¹Ïß³ÌÕ»µÄÒç³ö£¬²»ÄÜÔÚ³ÌÐòÖÐʹÓá£
µ±Ï̺߳¯ÊýÍ˳ö»òµ÷ÓÃExitProcessʱ£¬ÏàÓ¦µÄÏß³ÌÕ»»á±»Ïú»Ù£¬Èç¹ûÏß³ÌÊÇÓÉÆäËüÏß³ÌÖÕÖ¹µÄ£¬ÆäÏß³ÌÕ»»áÒ»Ö±´æÔÚÖ±ÖÁ½ø³ÌÖÕÖ¹¡£
Ïß³ÌÔ¤Áô¿Õ¼äºÍ³õʼÌá½»Ò³ÃæµÄ´óСÊÇÔÚ¿ÉÖ´ÐÐÎļþµÄÍ·²¿¶¨ÒåµÄ¡£Ä¬ÈϵÄÔ¤Áô¿Õ¼ä´óСÊÇ1MB£¬³õʼÌá½»Ò³Ãæ´óСΪ8K¡£ÊÖ¶¯
Ïà¹ØÎĵµ£º
Õâ¸öÎĵµ¼òµ¥½éÉÜÁËÔõôʹÓÃC++ΪPHP±àдһ¸öÀ©Õ¹Ä£¿é¡£ÎÒÒѾ±»Îʼ°Õâ¸öÎÊÌâÎÞÊý´ÎÁË£¬ËùÒÔÎÒ¾ö¶¨ÎªºóÀ´Õßдһ¸ö¼òµ¥µÄHOWTO¡£ÕâÆªÎÄÕÂÖ»»á˵Ã÷һЩҪµãºÍ¹Ø¼üÖ®´¦£¬Èç¹ûÄãÏ£ÍûѧϰC++»òPHP£¬Çë²éÔÄÆäËüµÄÎĵµ¡£
˳±ã£¬ÔÚ±¾ÎÄÖÐÎÒÃÇÒ²»á¿´Ò»ÏÂÔÚPHP5ÖÐÔõô°ÑC++ÀàÓ°Éäµ½PHPÖС£ÎÄÕÂÖеÄÀý×Ó¿ÉÒÔÔÚPHP4ºÍPHP5µÄ»·¾³ÏÂÊ¹Ó ......
VB
If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
MSComm1.CommPort = i1
MSComm1.PortOpen = True
MSComm1.InputMode = comInputModeBinary
MSComm1.InBufferCount = 0
& ......
Delphi Óë C/C++ Êý¾ÝÀàÐͶÔÕÕ±í
DelphiÊý¾ÝÀàÐÍC/C++
ShorInt
8λÓзûºÅÕûÊý
char
Byte
8λÎÞ·ûºÅÕûÊý
BYTE,unsigned short
SmallInt
16λÓзûºÅÕûÊý
short
Word
16λÎÞ·ûºÅÕûÊý
unsigned short
Integer,LongInt
32λÓзûºÅÕûÊý
int,long
Cardinal,LongWord/DWORD
32λÎÞ·ûºÅÕûÊý
unsigned long
Int6 ......
Í·Îļþregex.hÖж¨ÒåÁËc/c++ʹÓÃÕýÔò±í´ïʽµÄº¯Êý£º regcomp(), regexec(), regerror(), and regfree() ¡£regcomp()±àÒëÕýÔò±í´ïʽ£¬regexec()Æ¥ÅäÕýÔò±í´ïʽ£¬ regfree()ÊÍ·ÅÕýÔò±í´ïʽ£¬regerror()±¨¸æÕýÔò±í´ïʽ´íÎóÐÅÏ¢¡£Ê¹Ó÷½·¨ÈçÏ´úÂëËùʾ£º
static string merge_path(const string bas ......