wqweto / ZipArchive

A single-class pure VB6 library for zip with ASM speed
MIT License
52 stars 22 forks source link

Use libdeflate [de]compressor under conditional compilation #13

Open wqweto opened 5 years ago

wqweto commented 5 years ago

Pros

Cons

tannerhelland commented 5 years ago

A few additional thoughts...

Pros

Cons

Misc

Public Sub SetLibDeflatePath(pathToDll As String)
  mhLibDeflate = LoadLibrary(pathToDll)
  If (mhLibDeflate <> 0) Then
    'Cache proc addresses for relevant functions
  End If
End Sub

...with relevant deflate/inflate code gently modified...

If (mhLibDeflate <> 0) Then
   'Use libdeflate
Else
   'Use thunk
End If

Hard to know what is "best" for the average VB6 consumer of the class :/

wqweto commented 5 years ago

10x for input, Tanner.

I think gcc/mingw must support stdcall on x86 targets. Although still have to weight in benefits of using official release dlls against custom built stdcall ones.

tannerhelland commented 5 years ago

Yes, GCC does support stdcall exports, but I am fuzzy on "best practices" for handling things like name-mangling with it...

tbh I have moved more and more toward p/invoke-style DispCallFunc wrapping of official 3rd-party release builds in recent years, mostly because maintaining custom stdcall builds is tedious and I find few repo owners are interested in merging patches to simplify cross-building. But it's also entirely possible that I am just getting lazier... :)

Either way, thank you for investigating this feature! (And sorry for popping into this repo so often; it's one of the few I watch on GitHub as I've deployed it to quite a few client projects - across many production environments, it works excellently.)