Delphi Thread
Ö÷´°Ìå:
Delphi(Pascal) code:
procedure TfrmMain.btnResumeClick(Sender: TObject);
begin
myThread := TClientThread.Create(LeftPart(cbbServer.Text, ':'), StrToInt(RightPart(cbbServer.Text, ':')));
myThread.Resume;
mmoLog.Lines.Add('Ïß³ÌÒѼ¤»î');
end;
procedure TfrmMain.btnSuspendClick(Sender: TObject);
begin
if myThread = nil then
begin
ShowMessage('Ïß³Ìδ´´½¨!');
Exit;
end;
myThread.Suspend;
mmoLog.Lines.Add('Ïß³ÌÒÑ¹ÒÆð');
end;
procedure TfrmMain.btnStopClick(Sender: TObject);
begin
if myThread = nil then
begin
ShowMessage('Ïß³Ìδ´´½¨!');
Exit;
end;
myThread.Terminate;
myThread.WaitFor;
mmoLog.Lines.Add('Ïß³ÌÒÑÍ£Ö¹');
end;
Ï̵߳¥Ôª:
Delphi(Pascal) code:
unit uClientThread;
interface
uses
Windows, Classes, SysUtils, IdTCPClient, uString, Main, uCommon, Messages, Dialogs;
const
CM_DIAL = WM_USER + $100;
CM_HUNGUP = WM_USER + $101;
type
TClientThread = class(TThread)
private
FClient: TIdTCPClient;
FRequest: TStrings;
FResponse: TStrings;
FNotifyHandle: HWND;
// FPioneerCtrl: HWND;
procedure DoDial;
procedure DoDrop;
procedure DoUpload;
procedure DoSave;
protected
procedur
Ïà¹ØÎÊ´ð£º
Çë½Ì¸÷·¸ßÊÖ¡£ÎäÁÖǰ±²¡£ÎÒ½«B.EXE×ö³É×ÊÔ´Îļþ£¬È»ºó¼Óµ½123.dllÖС£ÓÃA.EXEÀ´µ÷ÓÃ123.dllÖеÄB.EXE
Çë¸÷λǰ±²°ïæָ½ÌÏ¡£A.exeÈçºÎÀ´µ÷ÓÃdllÖеÄexe£¿´úÂëÓÖ¸ÃÈçºÎд£¿
ÎÞÈ˻شð£¿
×ö³É×ÊÔ´Î ......
Ò»Ö±ÏëʹÓÃdll£¬µ«delphiµÄdll×Ó´°Ìå¾³£Óи÷ÖÖÎÊÌ⣬±ÈÈçÖ÷´°¿ÚÓëdll×Ó´°¿ÚµÄ½¹µãÎÊÌ⣬×Ó´°¿ÚÖпؼþµÄtab¼ü¡¢Èȼü¡¢enter¼üµÈµÄÎÊÌ⣬×Ó´°¿ÚÍ˳öµÄÎÊÌâ¡¢Æ½Ãæ°´Å¥ÎÊÌâµÈµÈ£¬ÍøÕ¾ÉϽøÐÐÁËËÑË÷£¬Ã»ÓбȽÏÍêÃÀµÄ½â¾ö· ......
µ÷ÓÃdelphiдµÄÒ»¸öcom×é¼þ£¬·½·¨ÊÇ
procedure test(out Param1: Integer); safecall;
×¢²ácomÖ®ºóÔÚc#ÖÐÒýÓö¼Ã»ÓÐÎÊÌâ
............´´½¨²¿·Ö¾ÍÊ¡ÂÔ²»Ð´ÁË
............
int v_int;
test(out v_int); µ÷ÓÃte ......
²»ºÃÒâ˼£¬You are fooled£¡
¹þ¹þ£¬ÓÞÈ˽ڿìÀÖ£¡ÎÒÒªÄÜÈ«¸ãµ½£¬ÎÒ¾ÍÈ¥¹ú¼Ò°²È«¾ÖÁË£¡
ºÇ£¬Äã»¹ÕæÏñ°²È«¾ÖµÄ
b4
¹þ¹þ£¡
ÕæºÃ
b4
ÎÒµ¹
¹þ¹þ£¡
½ñÌìÒ»¶¨ÒªÇõ¹Ò»個»ðÐǵġ£
ÕâÀïÓÐºÜ ......