Delphi ÀàÓë¶ÔÏóÄÚ´æ½á¹¹Ç³Îö(¸½¼þ2)
*ÀàµÄ¹«¿ªÊôÐÔ£¨´úÂ룩
ʾÀý£º·ÃÎÊÀàµÄpublishedÊôÐÔ
˵Ã÷£ºvmtFieldTable£¨Published Field±í£©Ö¸ÏòPublished Field±íÓÐÐòÅÅÁУ¬Ö»´æ´¢µ±Ç°ÀàµÄPublishedField±í£¬µÃµ½¸¸ÀàµÄPublished Field±íÐèÒªÍùÉϱéÀú¡£
×¢Ò⣺ֻÓÐÀàÐÍÊÇÀà»ò½Ó¿ÚµÄÊý¾Ý³ÉÔ±²Å¿É¶¨ÒåΪpublishedµÄ·ÃÎʼ¶±ð
´úÂ룺
type
TMyObject = class(TObject)
private
FField1: Integer;
FField2: string;
FField3: array[0..2] of Integer;
published
Button1: TButton;
Memo1: TMemo;
Label1: TLabel;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
AObject: TMyObject;
//---
procedure _ShowDMTInfo(ALines: TStrings; AClass: TClass);
var
AClassAddress,AFTAddress: Integer;
AFieldCount,AFieldIndex,AFieldOffset,AFieldNameLen: Integer;
APos,i: Integer;
AFieldName: ShortString;
begin
AClassAddress := Integer(AClass);
with ALines do
begin
Add(Format('ˈ̞: %s ', [AClass.ClassName]));
//---
AFTAddress := Integer(PPointer(AClassAddress + vmtFieldTable)^);
if AFTAddress = 0 then
&n
Ïà¹ØÎĵµ£º
Ò»¡¢Dll½¨Á¢
£¨Ò»£©DLLÏîÄ¿µÄ½¨Á¢
library mydll;
uses
base in 'base.pas';
exports
Triple name 'Tr';
{$R *.res}
begin
end.
£¨¶þ£©º¯Êýµ¥Ôª
unit base;
interface
uses windows;
function Triple(N:integer):integer;stdcall;
  ......
delphiºÜÔç¾ÍÒѾ¿ÉÒÔ½øÐÐÈý²ãµÄ¿ª·¢ÁË. µ«Ò»Ö±µ½ÏÖÔÚ, ÍøÉÏÕâ·½ÃæµÄ¶«Î÷Ì«ÉÙ ÁË. Ҫô̫ÀÏ, ÉõÖÁ²»ÍêÈ«ÕýÈ·. ÀýÈç:
ÈçºÎ½øÐжà±í¸üÐÂ(Ìá½»), ºÜ¶à»Ø¸´»¹ÊÇ˵ÓÃADOConnectionµÄÊÂÎñ, (Èç¹ûҪͬʱ¸üÐÂSQL SERVERºÍOracleÊý¾Ý¿âµÄ±íÔõô°ì).
µ±È»Ò²ÓÐ˵ÓÃSetComplete, SetAbortµÄ. µ«ËµµÄºÜ¼òµ¥, ÆäÖеÄ×¢ÒâÊÂÏîÓÖÊÇÊ ......
FindWindow(
lpClassName, {´°¿ÚµÄÀàÃû}
lpWindowName: PChar {´°¿ÚµÄ±êÌâ}
): HWND; {·µ»Ø´°¿ÚµÄ¾ä±ú; ʧ°Ü·µ»Ø 0}
//FindWindowEx ±È FindWindow ¶à³öÁ½¸ö¾ä±ú²ÎÊý:
FindWindowEx(
Parent: HWND; {Òª²éÕÒ×Ó´°¿ÚµÄ¸¸´°¿Ú¾ä±ú}
Child: HWND; {×Ó´°¿Ú¾ä±ú}
ClassName: PChar ......
Delphi Äܲ»ÄÜ´ÓRing 3½øÈëRing 0?
Â¥Ö÷skyworld_xm£¨skyworld£©2004-11-19 09:58:55 ÔÚ Delphi / Windows SDK/API ÌáÎÊ
Delphi Äܲ»ÄÜ´ÓRing 3½øÈëRing 0?
ÓÐÀý×ÓÂð?
¶àл. ÎÊÌâµãÊý£º100¡¢»Ø¸´´ÎÊý£º20Top
1 Â¥jinjazz£¨½üÉí¼ô£©»Ø¸´ÓÚ 2004-11-19 10:13:27 µÃ ......