The correct support for x64 platform
dbf ntx clipper compatibility delphi component
Brought to you by:
zilez20031
Please add the correct support for x64 platform. I can provide you required changes. The first block on each source file is a set of original lines. The second block is a set of correct lines. Official documentation can be found here: docwiki.embarcadero.com/RADStudio/XE4/en/Converting_32-bit_Delphi_Applications_to_64-bit_Windows
// 1. VKDBFDataSet.pas DataEvent(deFieldChange, Longint(Field)); RUnLock(Integer(FLockRecords.Items[0])); F.Tag := Integer(Pointer(FD)); DataEvent(deFieldChange, NativeInt(Field)); RunLock(NativeInt(FLockRecords.Items[0])); F.Tag := NativeInt(Pointer(FD)); // 2. VKDBFGostCrypt.pas function XORActivate(Password: AnsiString): LongWord; procedure XOREncrypt(Id: LongWord; Context: LongWord; Buff: Pointer; Size: Integer); procedure XORDecrypt(Id: LongWord; Context: LongWord; Buff: Pointer; Size: Integer); procedure XORDeactivate(Id: LongWord); function GostActivate(Password: AnsiString): LongWord; procedure GostEncrypt(Id: LongWord; Context: LongWord; Buff: Pointer; Size: Integer); procedure GostDecrypt(Id: LongWord; Context: LongWord; Buff: Pointer; Size: Integer); procedure GostDeactivate(Id: LongWord); function Gost1Activate(Password: AnsiString): LongWord; function GostActivate(Password: AnsiString): LongWord; Result := LongInt(Pointer(oCrypt)); function Gost1Activate(Password: AnsiString): LongWord; Result := LongInt(Pointer(oCrypt)); procedure GostEncrypt(Id: LongWord; Context: LongWord; Buff: Pointer; Size: Integer); procedure GostDecrypt(Id: LongWord; Context: LongWord; Buff: Pointer; Size: Integer); procedure GostDeactivate(Id: LongWord); function XORActivate(Password: AnsiString): LongWord; Result := LongInt(Pointer(oCrypt)); procedure XOREncrypt(Id: LongWord; Context: LongWord; Buff: Pointer; Size: Integer); procedure XORDecrypt(Id: LongWord; Context: LongWord; Buff: Pointer; Size: Integer); procedure XORDeactivate(Id: LongWord); function XORActivate(Password: AnsiString): NativeInt; procedure XOREncrypt(Id: NativeInt; Context: LongWord; Buff: Pointer; Size: Integer); procedure XORDecrypt(Id: NativeInt; Context: LongWord; Buff: Pointer; Size: Integer); procedure XORDeactivate(Id: NativeInt); function GostActivate(Password: AnsiString): NativeInt; procedure GostEncrypt(Id: NativeInt; Context: LongWord; Buff: Pointer; Size: Integer); procedure GostDecrypt(Id: NativeInt; Context: LongWord; Buff: Pointer; Size: Integer); procedure GostDeactivate(Id: NativeInt); function Gost1Activate(Password: AnsiString): NativeInt; function GostActivate(Password: AnsiString): NativeInt; Result := NativeInt(Pointer(oCrypt)); function Gost1Activate(Password: AnsiString): NativeInt; Result := NativeInt(Pointer(oCrypt)); procedure GostEncrypt(Id: NativeInt; Context: LongWord; Buff: Pointer; Size: Integer); procedure GostDecrypt(Id: NativeInt; Context: LongWord; Buff: Pointer; Size: Integer); procedure GostDeactivate(Id: NativeInt); function XORActivate(Password: AnsiString): NativeInt; Result := NativeInt(Pointer(oCrypt)); procedure XOREncrypt(Id: NativeInt; Context: LongWord; Buff: Pointer; Size: Integer); procedure XORDecrypt(Id: NativeInt; Context: LongWord; Buff: Pointer; Size: Integer); procedure XORDeactivate(Id: NativeInt); // 3. VKDBFMemMgr.pas if ( Integer(p) > Integer(B.FMemory) ) then begin if ( Integer(p) > Integer(B.FMemory) ) then Result := (Integer(p) = Integer(B.FMemory)); if Integer(Old) <> Integer(Obj.FMemory) then begin if ( NativeInt(p) > NativeInt(B.FMemory) ) then begin if ( NativeInt(p) > NativeInt(B.FMemory) ) then Result := (NativeInt(p) = NativeInt(B.FMemory)); if NativeInt(Old) <> NativeInt(Obj.FMemory) then begin
Also asm-functions (see TGostCrypt.Decode.AddLong).