unit winntService;
interface
uses
Windows,WinSvc,WinSvcEx;
function InstallService(const strServiceName,strDisplayName,strDescription,strFilename: string):Boolean;
procedure UninstallService(strServiceName:string);
implementation
function StrLCopy(Dest: PChar; const Source: PChar; MaxLen: Cardinal): PChar; assembler;
asm
PUSH EDI
PUSH ESI
PUSH EBX
MOV ESI,EAX
MOV EDI,EDX
MOV EBX,ECX
XOR AL,AL
TEST ECX,ECX
JZ @@1
REPNE SCASB
JNE @@1
INC ECX
@@1: SUB EBX,ECX
MOV EDI,ESI
MOV ESI,EDX
MOV EDX,EDI
MOV ECX,EBX
SHR ECX,2
REP MOVSD
MOV ECX,EBX
AND ECX,3
REP MOVSB
STOSB
MOV EAX,EDX
POP EBX
POP ESI
POP EDI
end;
function StrPCopy(Dest: PChar; const Source: string): PChar;
begin
Result := StrLCopy(Dest, PChar(Source), Length(Source));
end;
function InstallService(const strServiceName,strDisplayName,strDescription,strFilename: string):Boolean;
var
//ss : TServiceStatus;
//psTemp : PChar;
hSCM,hSCS:THandle;
Service: SC_HANDLE; ......
ÔÚ¶àCPU»ò¶àºËCPUÖУ¬»áËæ»úµÄ»ñµÃ²»Í¬µÄÐòÁкÅ.Õâ¾ÍΪÎÒÃǸù¾ÝCPUÐòÁкÅÀ´ÖÆ×÷×¢²á»ú´øÀ´Á˺ܴóµÄÂé·³¡£
Windows 2000/XPÔÊÐíÉèÖýø³ÌºÍÏ̵߳ĹØϵ¡£»»¾ä»°Ëµ£¬¿ÉÒÔ¿ØÖÆÄĸö CPU Äܹ»ÔËÐÐijЩÏ̡߳£Õâ³ÆΪAffinity Mask¡£WindowsÌṩÁËÉèÖÃÏàËÆÐԵĺ¯ÊýSetProcessAffinityMask £¬Ê¹ÓÃËü¿É¿ØÖÆ»ñÈ¡Ö¸¶¨CPUµÄÐòÁкš£
1¡¢ÈçºÎ»ñµÃcpuµÄÐòÁкš£
ʹÓÃcpuidÖ¸ÁîÀ´»ñÈ¡¡£
ÔÚµ÷ÓÃCPUID֮ǰ£¬EAXÖдæ·ÅµÄÊǹ¦ÄÜ´úÂë¡£ÔÚµ÷ÓÃCPUIDÖ®ºó£¬EAX,EBX,ECX,EDX´æ·ÅµÄÊÇCPUµÄ¸÷ÖÖÌØÕ÷ÐÅÏ¢¡£ÕâЩÐÅÏ¢Ò²¾ÍÊÇÎÒÃÇͨ³£Ëù˵µÄCPUÐòÁкš£
1¡¢ÈçºÎ»ñµÃcpuµÄÐòÁкÅ?
ÎÒÃÇ¿ÉÒÔʹÓÃʹÓÃCPUIDÖ¸ÁîÀ´»ñÈ¡¡£
ÔÚµ÷ÓÃCPUID֮ǰ£¬EAXÖдæ·ÅµÄÊǹ¦ÄÜ´úÂë¡£ÔÚµ÷ÓÃCPUIDÖ®ºó£¬EAX,EBX,ECX,EDX´æ·ÅµÄÊÇCPUµÄ¸÷ÖÖÌØÕ÷ÐÅÏ¢¡£ÕâЩÐÅÏ¢Ò²¾ÍÊÇÎÒÃÇͨ³£Ëù˵µÄCPUÐòÁкš£
MOV EAX, 0 //»ñÈ¡ÖÆÔìÉÌÐÅÏ¢
CPUID
Mov EAX, 1 //»ñµÃCPUµÄÐòÁкÅ
CPUID
ÏÂÃ潫ÌṩÈý¸öº¯Êý¹©²Î¿¼£º
function NewCPUID: string;
const ......
¸Õ¿ªÊ¼ºÜ²»Ï°¹ßc#µÄ·ç¸ñ£¬°¥£¬ÏÈÈëΪÖ÷°¡£¬delphiÏ°¹ßÁË£¬{}´úÌæbegin/endÌ«ÔúÑÛ¡£
ÊôÐÔ·½·¨µÄÐû¸æºÍ´úÂëÔÚÒ»Æð£¬Ã»ÓÐÏñdelphi·Öinterface/implementation£¬¸Ð¾õÌ«ÂÒ£¬¶¼²»ÖªµÀÒ»¸öclassµ½µ×Óм¸¸ö·½·¨¡£
ÿ¸öÊôÐԺͷ½·¨Ç°Ã涼Ҫµ¥¶Àдprivate/protected/public£¬ÀÏÌ죬c#ÊÇdelphiÖ®¸¸Éè¼ÆµÄÞÞ£¬Ôõô²»Ñ§delphiдһ¸ö¾ÍÐÐÄØ£¿¾ø¶Ô½µµÍÉú²úÂÊ¡£
c#ºÅ³ÆûÓÐÈ«¾Ö±äÁ¿¡¢È«¾Öº¯ÊýÁË£¬ÓÐÈË´ó¼ÒÔÞÉÍ£¬Ëµ¿ÉÒÔ¼õÉÙñîºÏ£¬¸ÕºÜºÃÆ棬¿´Á˲ÅÃ÷°×£¬ÀÏÌ죬¶¼·Åµ½classÀïÃæÈ¥ÁË£¬ÄÇÕâ¸öclassËã²»ËãÈ«¾ÖµÄ£¿£¿ÀàËÆdelphiµÄclass method£¬²»ÐèÒª´´½¨instance¾Í¿ÉÒÔµ÷Óá£
¸úcÒ»Ñù£¬º¯Êýµ÷Ó㬼´Ê¹Ã»ÓвÎÊý£¬Ò²Òª¼ÓÒ»¶ÔÀ¨ºÅ£¬·³£¬ÓÐʱºò²»ÖªµÀij¸ö¶«Î÷ÊÇÊôÐÔ»¹ÊÇ·½·¨£¬VSµÄcode insightÑ¡Ôñ·½·¨ºóÒ²²»×Ô¶¯¼ÓÉÏÒ»¶ÔÀ¨ºÅ£¬ÏñToString()£¬ÎÒ×ÜÊÇÍüµô¡£
ûÓÐÁ˵¥ÔªµÄ¸ÅÄ²»´æÔÚÒ»¸öcsÎļþÒýÓÃÁíÒ»¸öcsÎļþµÄÓ÷¨£¬ÔÚprojectÖеÄÎļþ¾Í¿ÉÒÔ»¥ÏàʹÓÃÀïÃæµÄclass¡£
assemblyÖÐûÓÐÈçdelphiµÄµ¥Ôªinitialization/finalization³õʼ»¯¹¦ÄÜ£¬ºÜ²»·½±ã£¬Ö»ÄÜͨ¹ýstatic propertyÀ´lazy´´½¨¡£
formÓÐcontrolsÊôÐÔ£¬ÁгöµÚÒ»²ã¿Ø¼þ£¬ÓëdelphiÒ»Ñù£»µ«ÊÇûÓÐcomponentsÊôÐÔ£¬²»ÖªµÀÈçºÎÁгöÄÇЩ²»¿ÉÊÓÔ ......
¸Õ¿ªÊ¼ºÜ²»Ï°¹ßc#µÄ·ç¸ñ£¬°¥£¬ÏÈÈëΪÖ÷°¡£¬delphiÏ°¹ßÁË£¬{}´úÌæbegin/endÌ«ÔúÑÛ¡£
ÊôÐÔ·½·¨µÄÐû¸æºÍ´úÂëÔÚÒ»Æð£¬Ã»ÓÐÏñdelphi·Öinterface/implementation£¬¸Ð¾õÌ«ÂÒ£¬¶¼²»ÖªµÀÒ»¸öclassµ½µ×Óм¸¸ö·½·¨¡£
ÿ¸öÊôÐԺͷ½·¨Ç°Ã涼Ҫµ¥¶Àдprivate/protected/public£¬ÀÏÌ죬c#ÊÇdelphiÖ®¸¸Éè¼ÆµÄÞÞ£¬Ôõô²»Ñ§delphiдһ¸ö¾ÍÐÐÄØ£¿¾ø¶Ô½µµÍÉú²úÂÊ¡£
c#ºÅ³ÆûÓÐÈ«¾Ö±äÁ¿¡¢È«¾Öº¯ÊýÁË£¬ÓÐÈË´ó¼ÒÔÞÉÍ£¬Ëµ¿ÉÒÔ¼õÉÙñîºÏ£¬¸ÕºÜºÃÆ棬¿´Á˲ÅÃ÷°×£¬ÀÏÌ죬¶¼·Åµ½classÀïÃæÈ¥ÁË£¬ÄÇÕâ¸öclassËã²»ËãÈ«¾ÖµÄ£¿£¿ÀàËÆdelphiµÄclass method£¬²»ÐèÒª´´½¨instance¾Í¿ÉÒÔµ÷Óá£
¸úcÒ»Ñù£¬º¯Êýµ÷Ó㬼´Ê¹Ã»ÓвÎÊý£¬Ò²Òª¼ÓÒ»¶ÔÀ¨ºÅ£¬·³£¬ÓÐʱºò²»ÖªµÀij¸ö¶«Î÷ÊÇÊôÐÔ»¹ÊÇ·½·¨£¬VSµÄcode insightÑ¡Ôñ·½·¨ºóÒ²²»×Ô¶¯¼ÓÉÏÒ»¶ÔÀ¨ºÅ£¬ÏñToString()£¬ÎÒ×ÜÊÇÍüµô¡£
ûÓÐÁ˵¥ÔªµÄ¸ÅÄ²»´æÔÚÒ»¸öcsÎļþÒýÓÃÁíÒ»¸öcsÎļþµÄÓ÷¨£¬ÔÚprojectÖеÄÎļþ¾Í¿ÉÒÔ»¥ÏàʹÓÃÀïÃæµÄclass¡£
assemblyÖÐûÓÐÈçdelphiµÄµ¥Ôªinitialization/finalization³õʼ»¯¹¦ÄÜ£¬ºÜ²»·½±ã£¬Ö»ÄÜͨ¹ýstatic propertyÀ´lazy´´½¨¡£
formÓÐcontrolsÊôÐÔ£¬ÁгöµÚÒ»²ã¿Ø¼þ£¬ÓëdelphiÒ»Ñù£»µ«ÊÇûÓÐcomponentsÊôÐÔ£¬²»ÖªµÀÈçºÎÁгöÄÇЩ²»¿ÉÊÓÔ ......
ȫͼ
±£´æÊý¾ÝΪtxtÎĵµ
±£´æΪͼÏñ
´òÓ¡——pdf´òÓ¡»ú
ÏÂÒ»²½ ÓÐʱ¼äµÄ»° ʵÏÖ ±êÇ©Ò³Ãæ USBת´®¿Ú×Ô¶¯Ê¶±ðÉ豸 //ÖØлص½STM32ÉÏÃæ-02-26 21:35:21
......
×î½üÐèÒª°²×°µÚÈý·½×é¼þ£¬ÔÚÍøÂçÉÏÕÒµ½Ò»Ð©×ÊÁÏת¹ýÀ´¿´¿´
ÓÉÓÚ×é¼þÌṩµÄ·½Ê½²»Í¬£¬ËùÒÔ°²×°µÄ·½·¨Ò²ÊDz»Ò»ÑùµÄ£¬ÏÂÃæ¾ÍÄ¿Ç°³£¼ûµÄ¸÷ÖÖÐÎʽµÄ×é¼þµÄ°²×°·½·¨½éÉÜһϡ£
1 Ö»ÓÐÒ»¸öDCUÎļþµÄ×é¼þ¡£DCUÎļþÊDZàÒëºÃµÄµ¥ÔªÎļþ£¬ÕâÑùµÄ×é¼þÊÇ×÷Õß²»Ïë°ÑÔ´Â빫²¼¡£Ò»°ãÀ´Ëµ£¬×÷Õß±ØÐë˵Ã÷´Ë×é¼þÊʺÏDelphiµÄÄÄÖÖ°æ±¾£¬Èç¹û°æ±¾²»¶Ô£¬ÔÚ°²×°Ê±¾Í»á³öÏÖ´íÎó¡£Ò²ÕýÊÇÒòΪûÓÐÔ´Â룬¸øʹÓÃÕß´øÀ´Á˲»±ã£¬ÄǾÍÊÇÒ»µ©Delphi°æ±¾Éý¼¶£¬´Ë×é¼þ¾Í²»ÄÜÔÙʹÓÃÁË£¬µ±È»ÓеÄ×÷Õ߸ø³öÁ˼¸ÖÖ°æ±¾µÄDCUÎļþ£¬Óû§¸ù¾ÝÐèҪѡÔñʹÓá£ÕâÑùµÄ×é¼þµÄ°²×°·½·¨ÊÇ£ºÔÚComponent²Ëµ¥ÖУ¬Ñ¡Ôñinstall component£¬ÔÚ¶Ô»°¿ò
"into existing package"Ò³ÖУ¬µ¥»÷“Unit file name”ºóµÄ“Browse”°´Å¤£¬ÔÚ´ò¿ªµÄÎļþ¶Ô»°¿òÖУ¬½«“ÎļþÀàÐÍ”É趨Ϊ*.dcu£¬ÕÒµ½Òª°²×°µÄDCUÎļþ£¬°´OK°´Å¥·µ»Ø"into existing package"Ò³ºóÔÙ°´OK°´Å¥¾Í¿ÉÒÔ°²×°ÁË¡£×¢Ò⣬´ËʱDelphi»áÌáʾdclusr40.dpk½«±»Öؽ¨£¬ÊÇ·ñ¼ÌÐø£¬OK¾Í¿ÉÒÔÁË¡£ÕâÀïÊǽ«×é¼þ°²×°µ ......
1¡¢±£Ö¤Äã´«µÝµÄ²ÎÊýÒªÕýÈ·£ºC++ÖеÄchar *¶ÔÓ¦PASCALÖеÄpchar¡£
2£ºC++Öе¼³öµÄº¯ÊýµÄ²ÎÊýµ÷Ó÷½Ê½ÒªºÍÄãDELPHIÖеĵ¼ÈëµÄº¯Êý²ÎÊýµ÷Ó÷½Ê½ÒªÒ»ÖÂ!
ÀýÈ磺 C++µÄ²ÎÊýµ÷Ó÷½Ê½ ¶ÔÓ¦µÄDELPHIµÄ²ÎÊýµ÷Ó÷½Ê½
_declspec cdecl
WINAPI,CALLBACK stdcall
PASCAL pascal
ÎÒÓöµ½¹ýÄãͬÑùµÄÎÊÌ⣬ºóÀ´°ÑSTDCALL¸ÄΪcdecl,ÎÊÌâ¾Í½â¾öÁË£¬ÒòΪÎÒÔÚC++µ¼³öº¯ÊýʱʹÓõÄÊÇ“_declspec(dllexport)”£¬Ò²¾ÍÊÇC²ÎÊýµ÷Óøñʽ¡£ ......
1¡¢±£Ö¤Äã´«µÝµÄ²ÎÊýÒªÕýÈ·£ºC++ÖеÄchar *¶ÔÓ¦PASCALÖеÄpchar¡£
2£ºC++Öе¼³öµÄº¯ÊýµÄ²ÎÊýµ÷Ó÷½Ê½ÒªºÍÄãDELPHIÖеĵ¼ÈëµÄº¯Êý²ÎÊýµ÷Ó÷½Ê½ÒªÒ»ÖÂ!
ÀýÈ磺 C++µÄ²ÎÊýµ÷Ó÷½Ê½ ¶ÔÓ¦µÄDELPHIµÄ²ÎÊýµ÷Ó÷½Ê½
_declspec cdecl
WINAPI,CALLBACK stdcall
PASCAL pascal
ÎÒÓöµ½¹ýÄãͬÑùµÄÎÊÌ⣬ºóÀ´°ÑSTDCALL¸ÄΪcdecl,ÎÊÌâ¾Í½â¾öÁË£¬ÒòΪÎÒÔÚC++µ¼³öº¯ÊýʱʹÓõÄÊÇ“_declspec(dllexport)”£¬Ò²¾ÍÊÇC²ÎÊýµ÷Óøñʽ¡£ ......