DelphiÖÐDLL³õʼ»¯ºÍÍ˳ö´¦Àí
<1>ÀûÓÃUnitµÄ
InitalizationÓëFinalizationÕâÁ½¸öС½Ú
¡¡¡¡¿ÉÒÔÔÚUnitµÄÕâÁ½¸öС½ÚÖа²ÅÅUnitµÄ½øÈëºÍÍ˳ö£¬µ«ÊÇ
Program
Óë
Library²¢Ã»ÓÐÕâÁ½¸ö²¿·Ö£¬ËùÒÔÖ»ÄÜдÔÚUnitÖС£
<2>ÀûÓÃExitProc±äÁ¿
¡¡¡¡ÔÚLibraryµÄbegin
..end.ÖмäÊÇ¿ÉÒÔд´úÂë
µÄ£¬
ÕâÀï¿ÉÒÔ·ÅÖÃ
DLL³õʼ»¯´úÂë
¡£Èç¹ûÏëÒª×öÉÆºó¹¤×÷£¬Ôò¿ÉÒÔÀûÓÃExitProc±äÁ¿¡£
ÎÒÃÇÊ×ÏÈÔÚ³õʼ»¯´úÂë
ÖÐ
°ÑExitProcÖаüº¬µÄĬÈϵÄÉÆºó¹ý³ÌµØÖ·±£
´æÏÂÀ´£¬È»ºó°Ñ×Ô¶¨ÒåµÄ¹ý³ÌµÄµØÖ·¸³¸øËü£¬ÕâÑùDLLÍ˳öʱ¾Í»áÖ´
ÐÐÎÒÃÇÖÆ¶¨µÄ³ÌÐò£»ÔÚ
×Ô¶¨ÒåµÄ¹ý³ÌµÄ×îºó£¬°ÑExitProc»Ö¸´ÔÀ´µÄ
ĬÈÏÖµ£¬ÒÔ±ãDLLÄܹ»¼ÌÐøÍê³ÉÔÀ´Ä¬ÈϵÄÉÆºó¹¤×÷¡£ÏÂÃæÊÇʾÀý£º
¡¡¡¡library
MyDLL;
¡¡¡¡...
¡¡¡¡OldExitProc: pointer;
¡¡¡¡...
¡¡¡¡procedure
MyExitProc;
¡¡¡¡begin
¡¡¡¡... //ÉÆºó³ÌÐò
¡¡¡¡ExitProc :=
OldExitProc;
¡¡¡¡end;
¡¡¡¡...
¡¡¡¡begin
¡¡¡¡... //³õʼ»¯³ÌÐò
¡¡
¡¡OldExitProc := ExitProc;
¡¡¡¡ExitProc := @MyExitProc;
¡¡¡¡end.
<3>ÀûÓÃDllProc±äÁ¿
¡¡¡¡ºÍExitProcÒ»Ñù£¬DllProcÒ²ÊÇÒ»¸öÔÚSystemdµ¥ÔªÖÐÔ¤¶¨ÒåµÄ±ä
Á¿¡£
ÔÚʹÓÃDLLProcʱ, ±ØÐëÏÈдºÃÒ»¸ö¾ßÓÐÒÔÏÂÔÐ͵ijÌÐò:
¡¡¡¡procedure
DLLHandler(Reason: integer);
²¢ÔÚlibraryµÄbegin
..end.Ö®¼ä,
½«Õâ¸öDLLHandler³ÌÐòµÄÖ´ÐеØ
Ö·¸³¸øDLLProcÖÐ, Õâʱ¾Í¿ÉÒÔ¸ù¾Ý²ÎÊýReasonµÄÖµ·Ö±ð×÷³öÏàÓ¦µÄ
´¦Àí¡£ÁíÍâ×¢ÒâÒª
½«Windowsµ¥Ôª¼ÓÈëuses×Ӿ䡣ʾÀýÈçÏÂ:
¡¡¡¡library TestDLL;
¡¡¡¡...
procedure
MyDLLHandler(Reason: integer);
begin
case Reason of
DLL_PROCESS_DETACH:
begin
ShowMessage('Õû¸öDLLµÄÉÆáá³ÌÐò');
end;
DLL_Process_Attach:
begin
ShowMessage('Õû¸öDLLµÄ³õʼ»¯´úÂë
');
end;
DLL_Thread_Attach:
begin
ShowMessage('µ±Ö÷½Ð¶Ë¿ªÊ¼Ò»¸öThreadʱ');
end;
DLL_Thread_Detach:
&n
Ïà¹ØÎĵµ£º
dllÎļþ¼ò½é£º
ËüÊÇDynamic Link Library µÄËõдÐÎʽ£¬DLL ÊÇÒ»¸ö°üº¬¿ÉÓɶà¸ö³ÌÐòͬʱʹÓõĴúÂëºÍÊý¾ÝµÄ¿â£¬DLL²»ÊÇ¿ÉÖ´ÐÐÎļþ¡£¶¯Ì¬Á´½ÓÌṩÁËÒ»ÖÖ·½·¨£¬Ê¹½ø³Ì¿ÉÒÔµ÷Óò»ÊôÓÚÆä¿ÉÖ´ÐдúÂëµÄº¯Êý¡£º¯ÊýµÄ¿ÉÖ´ÐдúÂëλÓÚÒ»¸ö DLL ÖУ¬¸Ã DLL °üº¬Ò»¸ö»ò¶à¸öÒѱ»±àÒë¡¢Á´½Ó²¢ÓëʹÓÃËüÃǵĽø³Ì·Ö¿ª´æ´¢µÄº¯Êý¡£DLL »¹ÓÐÖúÓ ......
×î½üÐèÒª°²×°µÚÈý·½×é¼þ£¬ÔÚÍøÂçÉÏÕÒµ½Ò»Ð©×ÊÁÏת¹ýÀ´¿´¿´
ÓÉÓÚ×é¼þÌṩµÄ·½Ê½²»Í¬£¬ËùÒÔ°²×°µÄ·½·¨Ò²ÊDz»Ò»ÑùµÄ£¬ÏÂÃæ¾ÍĿǰ³£¼ûµÄ¸÷ÖÖÐÎʽµÄ×é¼þµÄ°²×°·½·¨½éÉÜһϡ£
1 Ö»ÓÐÒ»¸öDCUÎļþµÄ×é¼þ¡£DCUÎļþÊDZàÒëºÃµÄµ¥ÔªÎļþ£¬ÕâÑùµÄ×é¼þÊÇ×÷Õß²»Ïë°ÑÔ´Â빫² ......
C#µÄToolTip£¨delphi½ÐHint£©»úÖÆ·Ç³£¹Ö£¬²»ÊÇÏñdelphiµÄÔª¼þÒ»Ñù£¬Ã¿¸öTControlÓÐÒ»¸öHintÊôÐÔ£¬C#ÓÐÒ»¸öToolTipÔª¼þ£¬µ±°ÑÕâ¸öÔª¼þ´Ó¹¤¾ßÏäÀµ½formÉϺó£¬Ñ¡ÖÐformÉϵÄÈκÎcontrolÔª¼þ£¬ÔÚÊôÐÔ´°Ì壨Object Inspector£©ÉϾͻá¶à³öÒ»¸öÊôÐÔ“toolTip1ÉϵÄToolTip”£¬Èç¹û¶àÀ¼¸¸ ......
TCPÁ¬½Ó½¨Á¢Óë¹Ø±Õ
ÏàП÷λ¶ÁÕßÏÖÔÚ¶Ôì¶ Winsock µÄ¶¨Ò塢ϵͳ»·¾³£¬ÒÔ¼°Ò»Ð© Winsock Stack¼° Winsock Ó¦ÓóÌʽ£¬¶¼Óлù±¾µÄÈÏʶÁË¡£½ÓÏÂÀ´±ÊÕßÏ£ÍûÄÜ·Ö¼¸ÆÚΪ¸÷λ¶ÁÕß½éÉÜһϼòµ¥µÄ Winsock ÍøÂ·Ó¦ÓóÌʽÉè¼Æ¡£ÎÒÃǽ«ÒÔ Winsock 1.1 ¹æ¸ñËù¶¨ÒåµÄ 46 ¸öÓ¦ÓóÌʽ½éÃæ£¨API£©Îª»ù´¡£¬Öð²½À´½¨Á¢Ò»¶Ô TCP socket Ö÷´Ó¼Ü ......
1¡¢¿ØÖÆPOS»úµÄ¿Í»§ÏÔʾÆÁ
procedure TFrmMain.ShowMoney(Money_Port: String;Money_String:String);
//Moneey_Port ¹ËÏÔ½Ó¿ÚCom1 or Com2 Money_String ¹ËÏÔÏÔʾµÄÄÚÈÝ
var
PrnFile ......