Delphi Êý×éºÍ½á¹¹Ìå
¼¼Êõ½»Á÷,DH½²½â. ¼ÇµÃºÜÔç֮ǰÎÒ¾Í˵¹ý,Êý×éºÍ½á¹¹ÌåÔÚÄÚ´æÖÐÆäʵһÑùµÄ,ËûÃǶ¼ÊÇÁ¬Ðø·Ö²¼µÄ.
ÀýÈç: TMyStruct = record
A,B,C:Integer;
end;
T3IntArray = array[0..2]of Integer;
ÕâÁ½¸ö¶¼Õ¼12×Ö½Ú,¶øÇÒTMyStruct.A¾ÍÊÇT3IntArray[0].
¶øÎÒÃÇÖªµÀÔÚ·ÃÎÊÊý×éÖÐij¸öÔªËØµÄʱºò,Ö»ÊÇÔÚµÚÒ»¸öÔªËØµÄµØÖ· + ÐòºÅ * ÔªËØ´óС.
ÄÇô·ÃÎʽṹÌåÓ¦¸ÃÒ²ÊÇÕâÑùµÄ,Ö»ÊǽṹÌåÖÐÿ¸öÔªËØµÄ´óС²»Ò»¶¨¶¼ÊÇÒ»ÑùµÄ,¶øÊý×éÖÐÿ¸öÔªËØ¶¼ÊÇÒ»ÑùµÄ.
ºÃµÄÎÒÃÇÀ´¿´¶Î´úÂë:
type
TMyStruct = record
A,B,C:Integer;
end;
T3IntArray = array[0..2]of Integer;
PMyStruct = ^TMyStruct;
procedure TForm2.Button2Click(Sender: TObject);
var
aArray:array[0..99] of Byte;
P:PMyStruct;
I: Integer;
begin
P:=PMyStruct(@aArray[0]);
for I := 0 to 5 - 1 do
begin
P^.A:=55;
P^.B:=66;
P^.C:=77;
Inc(P);
end;
end;
ÆäʵÕâ¸öPÎÒÃÇÏ൱ÓÚ¶¨ÒåÒ»¸öTMyStructµÄÊý×é,ÓÐ5¸öÔªËØ,µ«ÊÇÎÒÃǶ¨ÒåµÄÊÇÒ»¸öÖ¸Õë,¶øÇÒûÓзÖÅä¿Õ¼ä,ÎÒÊÇÔÚaArrayµÄ¿Õ¼äÉÏÃæÊ¹ÓÃ.
Ò²¾ÍÊǹý³Ì½áÊøµÄʱºò,aArray¿Õ¼ä±»ÊÕ»Ø,ÄÇôPÒ²¾ÍÏûʧÁË.¿´¿´·´»ã±à´úÂë:
utMain.pas.143: P:=PMyStruct(@aArray[0]);
004B6ACB 8BC4 mov eax,esp
utMain.pas.144: for I := 0 to 5 - 1 do
004B6ACD BA05000000 mov edx,$00000005 //Ñ»·±äÁ¿
utMain.pas.146: P^.A:=55;
004B6AD2 C70037000000 mov [eax],$00000037 //¶ÔA¸³Öµ55
utMain.pas.147: P^.B:=66;
004B6AD8 C7400442000000 mov [eax+$04],$00000042 //¶ÔB¸³Öµ66
utMain.pas.148: P^.C:=77;
004B6ADF C740084D000000 mov [eax+$08],$0000004d //¶ÔC¸³Öµ
utMain.pas.149: Inc(P);
004B6AE6 83C00C add eax,$0c //ÒÆ¶¯Ö¸Õë,Ò»¸öTMyStructµÄ´óСÊÇ3*4=12=$0c
utMain.pas.144: for I := 0 to 5 - 1 do
004B6AE9 4A dec edx
004B6AEA 75E6 jnz $004b6ad2
ºÜÇå³þµÄ¿´µ½ÁË,·ÃÎʺÍÐ޸ĽṹÌåÖÐij¸öÔªËØµÄÖµ,Ò²ÊÇÔڽṹÌåÖ¸ÕëÉÏÃæ½øÐÐÆ«ÒÆ.
ºÃµÄ,ÏÂÒ»´Î¿´¿´Ã¶¾Ù.
·Å¼ÙÁË.ÔÚ¼ÒÃ×ÓÐÍøÁË.ºÃºÃѧϰһÏÂ.
Ïà¹ØÎĵµ£º
Delphi¼üÅ̰´¼üαÂë
Ó÷¨£ºif key = chr(VK_RETURN) then...
³£ÊýÃû³Æ Ê®Áù½øÖÆÖµ Ê®½øÖÆÖµ ¶ÔÓ¦°´¼ü
VK_LBUTTON 01 1 Êó±êµÄ×ó¼ü
VK_RBUTTON 02 2 Êó±êµÄÓÒ¼ü
VK-CANCEL 03 3 Contol-break Ö´ÐÐ
VK_MBUTTON 04 4 Êó±êµÄÖмü£¨Èý°´¼üÊó±ê)
VK_BACK 08 8 Backspace¼ü
VK_TAB 09 9 Tab¼ü
VK_CLEAR 0C 12 Clear¼ü
VK ......
ÓÐЩʱºò,ҪдһЩ³ÌÐò,ÔÚ JAVA ÀïÃæºÃÄÑʵÏÖ, µ«Èç¹ûʹÓÃÆäËü±à³ÌÓïÑÔÈ´ÓֱȽÏÈÝÒ×ʱ,ÎÒÃDz»·Áͨ¹ý JNI À´Èò»Í¬ÓïÑԵijÌÐò¹²Í¬Íê³É.
JNI µÄ½Ì³Ì, ÍøÉÏ C µÄ±È½Ï¶à,Java Ò²ÌṩÁË javah.exe Ϊ C ÓïÑ﵀ JNI ³ÌÐòÉú³ÉÍ·Îļþ, Èç¹ûÄãÊÇÒ»¸ö Delphi ±à³ÌÔ±, ÄÜ·ñÈà JAVA Óë Delphi ³ÌÐò½»»¥ÄØ? ´ð°¸Êǿ϶¨µÄ,½ñÌìÎÒÃǾÍÀ´ ......
ÏûÏ¢µÄ´¦ÀíÁ÷³Ì£¬Á÷³ÌÈçÏ£º
ÆäÅÉ·¢´¦Àí¹ý³ÌÏêϸÈçÏ£º
×¢Ò⣺TWinControlÀïÃæWndProcÓе÷ÓÃϵͳAPI DefWindowProc,¸Ãº¯Êýµ÷ÓÃȱʡµÄ´°¿Ú¹ý³ÌÀ´ÎªÓ¦ÓóÌÐòûÓд¦ÀíµÄÈκδ°¿ÚÏûÏ¢ÌṩȱʡµÄ´¦Àí¡£¶øTWinControlÀïÃæDefaultHandlerÓÖµ÷ÓÃÁËϵͳAPI CallWindowProc£¬¸Ãº¯ÊýCallWindowProc½«ÏûÏ¢ÐÅÏ¢´«Ë͸øÖ¸¶¨µÄ´°¿ ......
Ò»¸öÑ¡µ¥´óÖÂÊÇÕâÑù£º
1.¿ÉÒÔ±»ÒÔijÖÖÐÎʽºô½Ð³öÀ´£¬Èç°´ÏÂesc£»
2.ÔÚÕâ¸öÑ¡µ¥Öй¦ÄܼüÓв»Í¬µÄ¶¨Ò壬ÈçÔ±¾·½Ïò¼ü¿ØÖÆ×ß·£¬µ«ÏÖÔÚ¸ÄΪ¿ØÖƹâ±êµÄλÖã»
3.°´ÏÂÈ·¶¨¼üºóÓжÔÓ¦¹¦Äܱ»Ö´ÐУ»
4.¿ÉÒÔ±»¹Ø±Õ¡£
ÄÇôÎҵİ취ÊDZàдÁ½¸ö×ӳ̣¬ÆäÖÐÒ»¸ö´¦ÀíÑ¡µ¥ÖеÄʼþ£¬ÁíÍâÒ»¸öרߺÔð»Ñ¡µ¥¡£
ÔÚ´Ó²½ÐÐÇл»µ½Ñ¡µ¥ ......