mirror of
https://github.com/CloudDelphi/Virtual-File-System
synced 2025-12-19 18:03:49 +01:00
Compare commits
No commits in common. "master" and "v1.0.3" have entirely different histories.
@ -1,9 +1,2 @@
|
|||||||
# VFS (Virtual File System)
|
# VFS (Virtual File System)
|
||||||
Add Virtual File System support to your project. Implement Mods directory support in 2 lines of code.
|
Add Virtual File System support to your project. Implement Mods directory support in 2 lines of code
|
||||||
Virtually copies contents of any directory into any directory. Copied contents is available in read-only mode.
|
|
||||||
|
|
||||||
## Example:
|
|
||||||
```delphi
|
|
||||||
VfsImport.MapModsFromListA('D:\Game', 'D:\Game\Mods', 'D:\Game\Mods\list.txt');
|
|
||||||
VfsImport.RunVfs(VfsImport.SORT_FIFO);
|
|
||||||
```
|
|
||||||
|
|||||||
@ -30,11 +30,7 @@
|
|||||||
<Borland.Personality>Delphi.Personality</Borland.Personality>
|
<Borland.Personality>Delphi.Personality</Borland.Personality>
|
||||||
<Borland.ProjectType>VCLApplication</Borland.ProjectType>
|
<Borland.ProjectType>VCLApplication</Borland.ProjectType>
|
||||||
<BorlandProject>
|
<BorlandProject>
|
||||||
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">True</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">4</VersionInfo><VersionInfo Name="Build">1</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">1049</VersionInfo><VersionInfo Name="CodePage">1251</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName">Alexander Shostak (aka EtherniDee)</VersionInfoKeys><VersionInfoKeys Name="FileDescription">Virtual File System</VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.4.1</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">Vfs.dpr</Source></Source><Excluded_Packages>
|
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">True</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">3</VersionInfo><VersionInfo Name="Build">2</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">1049</VersionInfo><VersionInfo Name="CodePage">1251</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName">Alexander Shostak (aka EtherniDee)</VersionInfoKeys><VersionInfoKeys Name="FileDescription">Virtual File System</VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.3.2</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">Vfs.dpr</Source></Source><Excluded_Packages>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -26,14 +26,22 @@ exports
|
|||||||
|
|
||||||
function Externalize (const Str: AnsiString): {O} pointer; overload;
|
function Externalize (const Str: AnsiString): {O} pointer; overload;
|
||||||
begin
|
begin
|
||||||
|
result := nil;
|
||||||
|
|
||||||
|
if Str <> '' then begin
|
||||||
GetMem(result, Length(Str) + 1);
|
GetMem(result, Length(Str) + 1);
|
||||||
Utils.CopyMem(Length(Str) + 1, pchar(Str), result);
|
Utils.CopyMem(Length(Str) + 1, pointer(Str), result);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function Externalize (const Str: WideString): {O} pointer; overload;
|
function Externalize (const Str: WideString): {O} pointer; overload;
|
||||||
begin
|
begin
|
||||||
|
result := nil;
|
||||||
|
|
||||||
|
if Str <> '' then begin
|
||||||
GetMem(result, (Length(Str) + 1) * sizeof(WideChar));
|
GetMem(result, (Length(Str) + 1) * sizeof(WideChar));
|
||||||
Utils.CopyMem((Length(Str) + 1) * sizeof(WideChar), PWideChar(Str), result);
|
Utils.CopyMem((Length(Str) + 1) * sizeof(WideChar), pointer(Str), result);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function MapDir (const VirtPath, RealPath: PWideChar; OverwriteExisting: boolean; Flags: integer = 0): LONGBOOL; stdcall;
|
function MapDir (const VirtPath, RealPath: PWideChar; OverwriteExisting: boolean; Flags: integer = 0): LONGBOOL; stdcall;
|
||||||
|
|||||||
@ -159,7 +159,6 @@ begin
|
|||||||
// Create and apply hook at target function start
|
// Create and apply hook at target function start
|
||||||
p.Clear();
|
p.Clear();
|
||||||
p.Jump(PatchForge.JMP, SpliceBridge);
|
p.Jump(PatchForge.JMP, SpliceBridge);
|
||||||
p.Nop(OverwrittenCodeSize - p.Pos);
|
|
||||||
|
|
||||||
if AppliedPatch <> nil then begin
|
if AppliedPatch <> nil then begin
|
||||||
AppliedPatch.Addr := OrigFunc;
|
AppliedPatch.Addr := OrigFunc;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user