delphi µ÷ÊÔʱ×ܳöÏÖcpu´°¿Ú£¬ntdll.dllµãµÄ½â¾ö·½·¨
ÔÚÖ÷½çÃæµÄimplementation {$R *.dfm} Ï·ÅÈëÒÔÏ´úÂ룺
procedure PatchInt3;
var
NOP: Byte;
NTDLL: THandle;
BytesWritten: DWORD;
Address: Pointer;
begin
if Win32Platform <> VER_PLATFORM_WIN32_NT then
Exit;
NTDLL := GetModuleHandle('NTDLL.DLL');
if NTDLL = 0 then
Exit;
Address := GetProcAddress(NTDLL, 'DbgBreakPoint');
if Address = nil then
Exit;
try
if Char(Address^) <> #$CC then
Exit;
NOP := $90;
if WriteProcessMemory(GetCurrentProcess, Address, @NOP, 1, BytesWritten) and (BytesWritten = 1) then FlushInstructionCache(GetCurrentProcess, Address, 1);
except // Do not panic if you see an EAccessViolation here, it is perfectly harmless!
on EAccessViolation do ;
else
raise;
end;
end;
È»ºóÔÚ´°ÌåµÄCreateÖе÷Óà PatchInt3 £»»òÕßÔÚ´°Ìå´úÂëµÄ×îºóÒ»¸öend.Ç°¼ÓÈëһϴúÂë¼´¿ÉÒÔ½â¾ö
//-------------------------------------------------------------- i
nitialization
begin
PatchInt3; //·ÀÖ¹¹Ø±Õ´°¿Úʱ³öÏÖCPU: ntdll.DbgBreakPoint
end;
Ïà¹ØÎĵµ£º
µ±È»Óû§ÒªÏëͨ¹ýÊý¾Ýä¯ÀÀ²¿¼þ±à¼ÐÞ¸ÄÊý¾Ý¿â±íÖеļǼ×Ö¶Îʱ£¬»¹ÒªÊܵ½ÆäËüÒòËصÄÖÆÔ¼¡£³ýÁËÊý¾Ýä¯ÀÀ²¿¼þ±¾ÉíµÄReadOnlyÊôÐÔÉèÖÃΪFalseÍ⣬»¹ÒªÉèÖÃÆäÏàÓ¦µÄ×ֶβ¿¼þºÍÊý¾Ý¼¯²¿¼þµÄCanModifyÊôÐÔTrueÐÔ£»ÉèÖÃTDataSource²¿¼þµÄAutoEditÊôÐÔΪTrue£¬Èç¹ûÊý¾Ý¿â±íÊÇSQLÊý¾Ý¿â·þÎñÆ÷ÖеÄÊý¾ ......
Delphi 2010Õýʽ°æÏÂÔØ(RAD Studio 2010ÏÂÔØ)
ÔÚ8ÔÂ26ÈÕÕýʽ·¢²¼ÁËRAD Studio 2010£¬¾ÍÊÇÎÒÃÇËùνµÄDelphi 2010¡£RAD Studio 2010°üº¬Delphi¡¢C++ BuilderºÍDelphi PrismµÈ¡£ RAD Studio 2010 µÄй¦ÄÜÖ÷ÒªÔÚÓÚ£ºÔöÇ¿µÄ IDEºÍ¿ÉÊÓ»¯×é¼þ¿â (VCL) ¿ò¼ÜºÍ»ù´¡µÄ±àÒëÆ÷ÒÔ¼°ÆäËû¸÷Ï¾ß£¬ÕâʹµÃÄã¹¹½¨ÄÇЩ¿çÔ½ËùÓеÄÊý¾ÝÔ´ºÍ ......
¼Ì³ÐÊÇΪÁ˱íÏÖÀàÓëÀàÖ®¼ä“ÊÇÒ»ÖÖ”¹Øϵ£¬ÊǶà̬´æÔڵĻù´¡£¬¼Ì³ÐÊÇÃæÏó¶ÔÏó±Ø²»¿ÉÉٵĻù´¡£¬Ö»Ö§³Ö·â×°¶ø²»Ö§³Ö¼Ì³ÐµÄÓïÑÔÖ»ÄܳÆΪ“»ùÓÚ¶ÔÏ󔣨Object-Based£©Ãæ·ÇÃæÏò¶ÔÏó“Object-Oriented”;
Object PascalÖ»Ö§³Öµ¥¼Ì³Ð£¬Ò²¾ÍÊÇÒ»¸öÅÉÉúÀàÖ»ÄÜÓÐÒ»¸ö»ùÀà
µ«¿ÉÒÔʵÏÖ¶à¸ö½Ó¿Ú ......
ʲôÊǶà̬£¬×ÖÃæÒâ˼¾ÍÊÇ“¶àÖÖÐÎ̬”£¬ÓöÔÏóÀ´½²¾ÍÊÇ×ÓÀà¼Ì³Ð»ùÀ࣬¶ø²»Í¬µÄ×ÓÀàÓÖ·Ö±ð¶Ô»ùÀà½øÐй¦ÄܵÄÀ©Õ¹¡£
¶à̬ÔÚObject PascalÖÐÊÇͨ¹ýÐé·½·¨ÊµÏֵģ¨Virtual Method£©,ÔÚObject PascalÖлùÀàµÄÐé·½·¨ÊÇ¿ÉÒÔ±»ÅÉÉúÀา¸Ç£¨Override£©µÄ ......
1. ¸´ÔÓµÄ×Óϵͳ
unit uSubObject;
interface
type
{ TAmplifierÓëTTuner£¬TCDPlayer£¬TDVDPlayerÏ໥ÒÀÀµ¡£ }
{ ÔÚTTunerµÈµÄ¼òµ¥ÊµÏÖʱÓò»µ½¶ÔTAmplifierµÄÒýÓ㬠}
{ µ«ÏÖʵÉú»îÖоÍÓ¦¸ÃÈÃTAmplifierÌṩ·þÎñ£¬ËùÒÔÕâÀï±£ÁôÁË¡£ }
{ TProjector¶ÔT ......