#define RVATOVA(base,offset) ((PVOID)((DWORD)(base)+(DWORD)(offset)))
#define ibaseDD *(PDWORD)&ibase
#define STATUS_INFO_LENGTH_MISMATCH      ((NTSTATUS)0xC0000004L)
#define NT_SUCCESS(Status) ((NTSTATUS)(Status) >= 0)

解决方案 »

  1.   

    Delphi中没有对应C宏定义的语法的。可以考虑改写成函数、常量申明。
      

  2.   

    只有用函数来替代
    #define RVATOVA(base,offset) ((PVOID)((DWORD)(base)+(DWORD)(offset))) 
    function RVATOVA(base,offset: DWORD): Pointer;
    begin
      result := Pointer(base+offset);
    end;
    #define ibaseDD *(PDWORD)&ibase //这一句Delphi只能变通处理;这一句好烦人,大概意思是求ibase地址,再强制转化为PDWORD类型指针,再求指针的地址#define STATUS_INFO_LENGTH_MISMATCH      ((NTSTATUS)0xC0000004L) 
    const
      STATUS_INFO_LENGTH_MISMATCH = $C0000004L;
    #define NT_SUCCESS(Status) ((NTSTATUS)(Status) >= 0)
    function NT_SUCCESS(Status: Integer): Boolean;
    begin
      Result := Status >=0;
    end;