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 £ºÒª´ò¿ª¶ÔÏóµÄÃû×Ö
¡¡¡¡·µ»ØÖµ£ºÈçÖ´Ðгɹ¦£
Ïà¹ØÎĵµ£º
TreeViewÓɽڵ㹹³É£¬½¨Ê÷ͨ¹ý¶ÔTreeView.itemsÊôÐÔ½øÐвÙ×÷¡£ItemsÊÇÒ»¸öTTreeNodes¶ÔÏó£¬ÕâÊÇÒ»¸öTTreeNode¼¯¡£
Ò»¡¢Õë¶ÔTTreeNodes,Ò²¾ÍÊÇ TreeView.Items,ÓÐÕâЩÊôÐÔ£º
1¡¢count£¬½Úµã¸öÊý¡£
2¡¢item[index] ,ͨ¹ýindexµÃµ½½Úµã¡£
¶þ¡¢Õë¶ÔTTreeNodes,Ò²¾ÍÊÇ TreeView.Items,³£ÓõÄÌí¼Ó½ÚµãµÄ²Ù×÷ÓУº
Add ......
¸ÅÒª
×ÔÈ¥ÄêCodeGear±»Ó¢°Í¿¨µÏŵ£¨Embarcadero Technologies£©ÊÕ¹ººó£¬´ó¼Ò¶ÔDelphiµÄδÀ´·¢Õ¹·Ç³£¹ØÐÄ¡£½üÈÕ£¬InfoQÖÐÎÄÕ¾ÓÐÐÒ¶ÔDavid I½øÐÐÁ˶À¼Òר·Ã£¬ÒÔÁ˽â¸ü¶à¹ØÓÚDelphiµÄÏà¹ØÐÅÏ¢¡£
¸öÈ˼ò½é
David Intersimone£¨¼ò³ÆDavid I£©£¬Ó¢°Í¿¨µÏŵ¸ºÔ𿪷¢Õß¹ØÏµµÄ¸±×ܲúÍÊ×ϯÐû´«¹Ù£¨Chief Evangelist£©¡£David¸º ......
ÕâÊÇÒ»¸öʵÀý£º
procedure TMainForm.Button1Click(Sender: TObject);
var
arr:array of array of string;
begin
setlength(arr,2,3);
arr[1,2]:='this is a test';
setlength(arr,0,0);
setlength(arr,4,5);
showmessage(arr[1,2]);
end;
ÉùÃ÷Ò»¸ö¶þάÊý×éµÄ·½·¨ÊÇÓ ......
1.ÏÂÔØJNativeµÄ°ü
JNative-1.3.2ÏÂÓÐÈý¸öÎļþ£ºJNativeCpp.dll£¬libJNativeCpp.so£¬JNative.jar¡£
JNativeCpp.dll¿½µ½windows/system32Ŀ¼ÏÂ
libJNativeCpp.soΪLinuxÖÐʹÓõÄÎļþ
JNative.jarÀ©Õ¹°ü¿½µ½%JAVA_HOME%\jre\lib\extÏ»òÕßµ¼Èëµ½¹¤³ÌÖÐ
2.JnativeÖÐʹÓõ½µÄһЩÀàºÍ·½·¨
org
.xvolks
.jnative
.Jnat ......