Delphi·Ö½âÄ£¿éµÄ¼¼Êõ
ÖÚËùÖÜÖª£¬ÏµÍ³ÐèÒª½øÐжàÈ˲¢Ðпª·¢Ê±£¬Ó¦¸Ã°Ñϵͳ·Ö²ð³É¶ÀÁ¢µÄÄ£¿é£¬ÕâÑù²ÅÄܱÜÃ⿪·¢³åÍ»¡£µ«ÈçºÎ½øÐзֲðÄØ£¿ÔÚDelphiϵͳÖУ¬ÓкܶàÖÖ·½·¨£¬ÏÂÃæÀ´½øÐÐÒ»Ò»½éÉÜÓë·ÖÏí¡£
1.°ÑÄ£¿é²ð·Ö³É°ü(dpk)£¬Ö±½ÓÔÚÖ÷³ÌÐòÖÐͨ¹ýLoadPackageº¯Êý°Ñ°ü×°ÔØ½øÀ´¼´¿É¡£²»¹ýÕâÖÖ·½·¨Ò²ÓÐЩ²»±ã£¬ËùÓеÄÀà±ØÐë¼Ì³Ð×ÔTPersistentClass£¬²¢ÇÒRegisterClassÖ®ºó²ÅÄܱ»GetClass´ÓÖ÷³ÌÐò»ñÈ¡£¬ÕâÑù²Ù×÷Ò²ÊDZȽÏÂé·³µÄ¡££¨²»ÍƼöʹÓã©
2.°ÑÄ£¿é²ð·Ö³ÉDLL£¬±àÒëʱ²»´ø°ü±àÒ루ÎÊÌ⣺ÓÉÓÚÀàÔÚ¶ÀÁ¢µÄ¿Õ¼ä£¬Ê¹ÓÃÍⲿ°üʱ£¬ÈÝÒײúÉúÀ಻¼æÈݵÄÎÊÌ⣬ÔÚDLLÖÐÅжÏÀàÊÇ·ñ¼Ì³Ð×ÔÖ÷exeÖеĶÔÏóÊDz»Ðе쬶øÕâÖÖÐèÇóÓÖ¾³£³öÏÖ£¬Òò´Ë²»ÍƼöʹÓÃÕâÖÖ·½Ê½¡££©
3.°ÑÄ£¿é²ð·Ö³ÉDLL£¬±àÒëʱ´ø°ü±àÒ루ÔÚproject->Options->PackagesÖаÑBuild with runtime packagesÑ¡ÉÏ£©£¬È»ºó°ÑÐèÒªµÄ°ü´ø½øÈ¥¼´¿É£¬Ö÷³ÌÐòÒ²ÊÇ´ø°ü±àÒ룬ÕâÑùÖ÷³ÌÐòÓëDLL¾Í»áʹÓù²Í¬µÄÀà·ÖÅä±í¿Õ¼ä£¬¶ÔÏàͬµÄÀà¾Í¿ÉÒÔ½øÐмæÈÝÅжÏÁË£¬ÕâÑù¾Í¿ÉÒÔʹÓÃDLLÖм̳Ð×Ô¹«¹²°üÖеĻùÀàÀ´ÊµÏÖ¹¦ÄÜÁË£¬ÁíÍâÕâÑù»¹¿ÉÒÔ±ÜÃâºÜ¶àÎÊÌ⣬ÈçʹÓõÚÈý·½¿Ø¼þ²úÉúµÄÆæ¹ÖÎÊÌ⣬DLL½¨Á¢µÄ×Ó´°¿ÚÎÞ·¨ÔÚÖ÷´°¿ÚÖГ´æ»î”µÄÎÊÌ⣬µÈµÈ¡£
4.°ÑÄ£¿é²ð·Ö³É´ø¹«¹²°üµÄDLL»òdpk£¬°Ñ»ùÀà²ðµ½¹«¹²°üÖУ¬¹«¹²°üÖаüº¬È«¾Ö±äÁ¿£¬ÔÚDLL»òdpkÖпÉÒÔʹÓÃinitilization¶ÔÈ«¾Ö±äÁ¿½øÐгõʼ»¯£¬²»ÐèÒª´«µÝÈκβÎÊý£¬ÕâÑù¾Í¿ÉÒÔʵÏְѽӿÚÀàºÍÈ«¾Ö±äÁ¿·ÅÔÚ¹«¹²°üÖУ¬¾ßÌåʵÏÖÀàÖ±½ÓÒýÓù«¹²±äÁ¿µÄ·½°¸£¬²»¹ýʹÓÃÕâÖÖ·½Ê½Ê±£¬½Ó¿ÚµÄµÝÔöʽ¿ª·¢Òª×¢ÒâµÄÊǹÜÀíÎÊÌâ¡£
ÓÐÈËÖ÷ÕÅÔÚ¿ª·¢Ç°¾Í»¨±È½Ï³¤µÄʱ¼ä°Ñ½Ó¿ÚÉè¼ÆºÃ£¬²»¹ýÕâÖÖ“ÀíÏë”Çé¿öÖ»ÓÐÔÚÀíÏë¹ú¶ÈÄڲſÉÄܳöÏÖ£¬²»ÐèÒªÐ޸ĵĽӿÚÉè¼ÆÊDz»¿ÉÄܵġ£²»¹ý×îÖ÷ÒªµÄÊÇÉè¼ÆºÃÒ»¸ö¹µÍ¨Á÷³Ì£¬ÕâÖÖ¹µÍ¨»úÖÆÈçºÎ½¨Á¢ÄØ£¿²»Í¬µÄ¿ª·¢ÍŶÓÓв»Í¬µÄʵÏÖ»úÖÆ£¬ÇëÓÐÐËȤµÄÅóÓÑÒ»ÆðÀ´¿´¿´ÏÂÖܵÄÉè¼Æ¹¦ÄÜÌÖÂÛ¡£
Ïà¹ØÎĵµ£º
ÎÒÃÇÄÜ¿´µ½ÒÔÏ´úÂë
var pSource,pDest:PChar;
len: integer;
.......................//һЩ´úÂë
Move(pSource,pDest,len); //´íÎó
Move(pSource^,pDest^,len); //ÕýÈ·
¿´ÆðÀ´È·ÊµºÃÏñÊÇ´«Öµ£¬¶ø²»ÊÇ´«µØÖ·£¬µ«ÊǸ÷λ±ðÍüÁË£¬Õâ²»ÊÇC£¬C++£¬¶øÊÇDelphi
Object Pascal,ËùÒÔ£¬¾ø²»ÄÜ´Óº¯Êýµ ......
Delphi¿½±´Ä¿Â¼(º¬×ÓĿ¼)µÄ·½·¨
ҪʵÏÖĿ¼¼¶µÄ¿½±´£¬¿ÉÒÔÀûÓÃWindows APIº¯ÊýShFileOperation( )£¬Æäº¯ÊýÉùÃ÷ÈçÏ£º
WINSHELLAPI int WINAPI SHFileOperation(
LPSHFILEOPSTRUCT lpFileOp
);
ʵÀý£º
н¨Ò»¸ö¹¤³Ì£¬Æä³ÌÐòʾÀýÈçÏ£º
unit Unit1;
interface
uses
Windows, Messag ......
×¢£º ʹÓôíÎ󣬻òÕßÔڸüӵĵط½Ã»Óмӣ¬¿ÉÄÜ»á³öÏÖ"privileged instruction"´íÎ󣬻òÕßµØÖ··ÃÎÊ´íÎó¡£
³£¼ûµÄµ÷ÓùßÀýÓÐregister, pascal, cdecl, stdcall, safecall¡£º¯ÊýµÄµ÷ÓùÜÀí¾ö¶¨Á˲ÎÊýÈçºÎ´«µÝ¸ø×Ó¹ý³Ì£¬²¢´Ó¶ÑÕ»ÖÐÍ˳ö£¬ÒÔ¼°¼Ä´æÆ÷ÔÚ²ÎÊý´«µÝÖеÄʹÓ㬴íÎóºÍÒì³£µÄ´¦Àí¡£DelphiÖÐĬÈϵĵ ......
ÉèÓÐÒÔÏÂÈý¸ö±äÁ¿£º
var
s:string;
p:pchar;
a:array[1..20] of char;
ÄÇôÈýÕßÖ®¼äµÄת»»ÈçÏ£º
1¡¢×Ö·û´®µ½PChar
p:=PChar(s);
2¡¢PCharµ½×Ö·û´®
s:=p;
3¡¢PCharµ½×Ö·ûÊý×é
StrCopy(@a,p);
4¡¢×Ö·ûÊý×éµ½PChar
......
DelphiÖÐÓÐÒ»¸öÏß³ÌÀàTThreadÊÇÓÃÀ´ÊµÏÖ¶àÏ̱߳à³ÌµÄ£¬Õâ¸ö¾ø´ó¶àÊýDelphiÊé½å¶¼ÓÐ˵µ½£¬µ«»ù±¾É϶¼ÊǶÔTThreadÀàµÄ¼¸¸ö³ÉÔ±×÷Ò»¼òµ¥½éÉÜ£¬ÔÙ˵Ã÷Ò»ÏÂExecuteµÄʵÏÖºÍSynchronizeµÄÓ÷¨¾ÍÍêÁË¡£È»¶øÕâ²¢²»ÊǶàÏ̱߳à³ÌµÄÈ«²¿£¬ÎÒд´ËÎĵÄÄ¿µÄÔÚÓÚ¶Ô´Ë×÷Ò»¸ö²¹³ä¡£
Ï̱߳¾ÖÊÉÏÊǽø³ÌÖÐÒ»¶Î²¢·¢ÔËÐеĴú ......