delphiÖÐCreateMutex£¬OpenMutexʹÓÃÒ»Àý
VCÉùÃ÷
HANDLE CreateMutex(
¡¡¡¡LPSECURITY_ATTRIBUTES lpMutexAttributes, // SD
¡¡¡¡BOOL bInitialOwner, // initial owner
¡¡¡¡LPCTSTR lpName // object name
¡¡¡¡);
delphiÉùÃ÷£º
function CreateMutex(lpMutexAttributes: PSecurityAttributes; bInitialOwner: BOOL; lpName: PChar): THandle; stdcall;
´´½¨Ò»¸ö»¥³âÌ壨MUTEX£©
¡¡¡¡·µ»ØÖµ
¡¡¡¡Long£¬ÈçÖ´Ðгɹ¦£¬¾Í·µ»Ø»¥³âÌå¶ÔÏóµÄ¾ä±ú£»Áã±íʾ³ö´í¡£»áÉèÖÃGetLastError¡£¼´Ê¹·µ»ØµÄÊÇÒ»¸öÓÐЧ¾ä±ú£¬µ«ÌÈÈôÖ¸¶¨µÄÃû×ÖÒѾ´æÔÚ£¬GetLastErrorÒ²»áÉèΪERROR_ALREADY_EXISTS
¡¡¡¡²ÎÊý±í ²ÎÊý ÀàÐͼ°ËµÃ÷
¡¡¡¡lpMutexAttributes SECURITY_ATTRIBUTES£¬Ö¸¶¨Ò»¸öSECURITY_ATTRIBUTES½á¹¹£¬»ò´«µÝÁãÖµ£¨½«²ÎÊýÉùÃ÷ΪByVal As Long£¬²¢´«µÝÁãÖµ£©£¬±íʾʹÓò»ÔÊÐí¼Ì³ÐµÄĬÈÏÃèÊö·û
¡¡¡¡bInitialOwner Long£¬Èç´´½¨½ø³ÌÏ£ÍûÁ¢¼´ÓµÓл¥³âÌ壬ÔòÉèΪTRUE¡£Ò»¸ö»¥³âÌåͬʱֻÄÜÓÉÒ»¸öÏß³ÌÓµÓÐ
¡¡¡¡lpName String£¬Ö¸¶¨»¥³âÌå¶ÔÏóµÄÃû×Ö¡£ÓÃvbNullString´´½¨Ò»¸öδÃüÃûµÄ»¥³âÌå¶ÔÏó¡£ÈçÒѾ´æÔÚÓµÓÐÕâ¸öÃû×ÖµÄÒ»¸öʼþ£¬Ôò´ò¿ªÏÖÓеÄÒÑÃüÃû»¥³âÌå¡£Õâ¸öÃû×Ö¿ÉÄܲ»ÓëÏÖÓеÄʼþ¡¢ÐźŻú¡¢¿ÉµÈ´ý¼ÆʱÆ÷»òÎļþÓ³ÉäÏà·û
¡¡¡¡×¢½â
¡¡¡¡Ò»µ©²»ÔÙÐèÒª£¬×¢Òâ±ØÐëÓÃCloseHandleº¯Êý½«»¥³âÌå¾ä±ú¹Ø±Õ¡£´ÓÊôÓÚËüµÄËùÓоä±ú¶¼±»¹Ø±Õºó£¬¾Í»áɾ³ý¶ÔÏó
¡¡¡¡½ø³ÌÖÐֹǰ£¬Ò»¶¨ÒªÊÍ·Å»¥³âÌ壬Èç²»É÷δ²ÉÈ¡Õâ¸ö´ëÊ©£¬¾Í»á½«Õâ¸ö»¥³âÌå±ê¼ÇΪ·ÏÆú£¬²¢×Ô¶¯ÊÍ·ÅËùÓÐȨ¡£¹²ÏíÕâ¸ö»¥³âÌåµÄÆäËûÓ¦ÓóÌÐòÒ²ÐíÈÔÈ»Äܹ»ÓÃËü£¬µ«»á½ÓÊÕµ½Ò»¸ö·ÏÆú״̬ÐÅÏ¢£¬Ö¸³öÉÏÒ»¸öËùÓнø³ÌδÄÜÕý³£¹Ø±Õ¡£ÕâÖÖ×´¿öÊÇ·ñ»áÔì³ÉÓ°ÏìÈ¡¾öÓÚÉæ¼°µ½µÄ¾ßÌåÓ¦ÓóÌÐò
º¯Êý¹¦ÄÜ£ºÎªÏÖÓеÄÒ»¸öÒÑÃüÃû»¥³âÌå¶ÔÏó´´½¨Ò»¸öоä±ú
¡¡¡¡º¯ÊýÔÐÍ£º HANDLE OpenMutex(
dwDesiredAccess, // access
¡¡¡¡DWORD
¡¡¡¡ BOOL bInheritHandle, // inheritance option
¡¡¡¡ LPCTSTR lpName // object name
¡¡¡¡ );
delphiÉùÃ÷£º
function OpenMutex(dwDesiredAccess: DWORD; bInheritHandle: BOOL; lpName: PChar): THandle; stdcall;
¡¡¡¡²ÎÊý£º
¡¡¡¡dwDesiredAccess£º
¡¡¡¡MUTEX_ALL_ACCESS ÇëÇó¶Ô»¥³âÌåµÄÍêÈ«·ÃÎÊ
¡¡¡¡MUTEX_MODIFY_STATE ÔÊÐíʹÓà ReleaseMutex º¯Êý
¡¡¡¡SYNCHRONIZE ÔÊÐí»¥³âÌå¶ÔÏóͬ²½Ê¹ÓÃ
¡¡¡¡bInheritHandle : ÈçÏ£Íû×Ó½ø³ÌÄܹ»¼Ì³Ð¾ä±ú£¬ÔòΪTRUE
¡¡¡¡lpName £ºÒª´ò¿ª¶ÔÏóµÄÃû×Ö
¡¡¡¡·µ»ØÖµ£ºÈçÖ´Ðгɹ¦£
Ïà¹ØÎĵµ£º
×î½üÒ»Õó×Ó£¬×ÜÊDZ»Ò»¸öĪÃûÆäÃîµÄbugÀ§ÈÅ¡£×Ô¼ºÐ´µÄocx£¨.net2005£©ÔÚdelphi7Öе÷Óã¬Ã÷Ã÷ûÓÐÊÍ·ÅÖ÷¶¯ÊͷŹýÄڴ棬ȴ±»Á¬ÐøÊÍ·ÅÁËÁ½´Î¡£½á¹û£¬³ÌÐòÍ˳öʱ¾ÍdownµôÁË¡£µ±È»£¬ÕâÊÇÔÚdebugģʽϲŻá³öÏÖ£¬µ«ÊÇexeÅܵÄʱºò»áĪÃûÆæÃîµÄdownµô£¬¶øÇÒ³ö´íÍùÍùÖ¸Ïòocx£¬ÎÒÏëÒ»¶¨ºÍocxµÄµ÷ÓÃÓйء£
ÉÏÍøÕÒÁËpurify£¬boundscheck ......
procedure mc_SplitStr(sourStr:String;splitChar:String;desLst:TStringList);
var
tmpStr:String;
sValue:String;
iStart,iPos:Integer;
begin
try
desLst.Clear; //ºÜÖØÒª£¬·ñÔò£¬»áÒ» ......
¸ÅÒª
×ÔÈ¥ÄêCodeGear±»Ó¢°Í¿¨µÏŵ£¨Embarcadero Technologies£©ÊÕ¹ººó£¬´ó¼Ò¶ÔDelphiµÄδÀ´·¢Õ¹·Ç³£¹ØÐÄ¡£½üÈÕ£¬InfoQÖÐÎÄÕ¾ÓÐÐÒ¶ÔDavid I½øÐÐÁ˶À¼Òר·Ã£¬ÒÔÁ˽â¸ü¶à¹ØÓÚDelphiµÄÏà¹ØÐÅÏ¢¡£
¸öÈ˼ò½é
David Intersimone£¨¼ò³ÆDavid I£©£¬Ó¢°Í¿¨µÏŵ¸ºÔ𿪷¢Õß¹ØϵµÄ¸±×ܲúÍÊ×ϯÐû´«¹Ù£¨Chief Evangelist£©¡£David¸º ......
(Ò») ʹÓö¯Ì¬´´½¨µÄ·½·¨
Ê×ÏÈ´´½¨ Excel ¶ÔÏó£¬Ê¹ÓÃComObj:
var ExcelApp: Variant;
ExcelApp := CreateOleObject( 'Excel.Application' );
1) ......
1£®ÒýÑÔ
ÔÚÀûÓÃdelphi¿ª·¢Ó¦ÓóÌÐòµÄʱºò£¬Í¨³£ÎÒÃÇÒªÉè¼Æ³öºÜ¶à¸÷ÖÖ¸ñʽµÄÎĵµ¡¢±¨±í£¬¾³£Òª½øÐÐÎļþµÄ´´½¨¡¢±à¼¼°Ð޸ģ¬ËäÈ»delphi±¾ÉíÌṩÁ˺ܶàÉè¼Æ±¨±íµÄ¿Ø¼þ»ò·½·¨£¬µ«ÊÇ´æÔÚÃ÷ÏԵIJ»×㣬±ÈÈçÖÐÎÄÊäÈ룬Êý¾Ý¸ñʽµÄ¿ØÖƵȲÙ×÷ÆðÀ´±È½ÏÂé·³¡£ÀûÓôó¼Ò¶¼ºÜÊìϤµÄoffice¹¤¾ß½áºÏ¿ª·¢£¬Äܹ»ºÜºÃµÄ½â¾öÕâ·½ÃæµÄÎÊÌâ¡£ÒÔÏ ......