From d8d623ea20a8d20dae3a2f73d4a109f08bdf729f Mon Sep 17 00:00:00 2001 From: Maxxiii <30539708+Maxxiii@users.noreply.github.com> Date: Mon, 14 Sep 2020 20:42:31 +0300 Subject: Add remaining Comments pages and links to them (only 1st page for now) --- subpages/Comments/HLLib.html | 825 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 825 insertions(+) create mode 100644 subpages/Comments/HLLib.html (limited to 'subpages/Comments/HLLib.html') diff --git a/subpages/Comments/HLLib.html b/subpages/Comments/HLLib.html new file mode 100644 index 0000000..89d1cf3 --- /dev/null +++ b/subpages/Comments/HLLib.html @@ -0,0 +1,825 @@ + + + + Nem's Tools [Miscellaneous - HLLib - HLLib] + + + + + + + + + + +
This is archived copy of currently unavailable Nem's + Tools website, restored from Web Archive.
+ Download section now provides links to both Web Archive and to this unofficial Github mirror. +
+
+
+
+ +
+
+
+
+
+
+
+
HLLib + - NemPosted: May 23rd, 2005 - 6:32:20 pm +
+
+
About: + +

HLLib is a package library for Half-Life that abstracts several package formats and provides a simple + interface for all of them. HLLib is written in native C++ but exposes both a C and C++ interface which + can be used in any C or C++ application (additional languages may also use the library with standard C + imports). HLLib works natively in both Windows (x86 and x64) and Linux. BSP, GCF, NCF, PAK, VPK, WAD, + XZP and uncompressed ZIP package formats are supported.

+ +

HLLib is an open source library licensed under the LGPL. It comes with the source code and binaries + necessary to use it. An example application called HLExtract, which is licensed under the GPL, is also + included. HLExtract is a command line utility written in C that can load all HLLib supported packages + and extract multiple items from them while maintaining their directory structure. Also included is a + C# HLExtract port called HLExtract.Net.

+ + Download from Web Archive: + + + + + Download from unofficial Github mirror: + + + + GridMount: + +

A MacFUSE + file system handler called GridMount + is available for those looking to run HLLib on a Mac.

+ + Java Wrapper: + +

A Java wrapper is available for those looking to use HLLib in Java. It can be found on SourceForge. +

+ + Revision History: + +

+ + v2.4.6 +
    +
  • Modified VPF file support to handle the removal of a null terminator from the end of the + directory.
  • +
+ + v2.4.5 +
    +
  • Added support for new SGA file format (v6).
  • +
  • Added support for new SGA file format (v7).
  • +
+ + v2.4.4 +
    +
  • Fixed support for VPK file format (v1).
  • +
+ + v2.4.3 + +
    +
  • Added support for new VPK file format (v2). +
  • +
  • Added SGA file support. +
  • +
  • Added ZIP deflate support. +
  • +
+ + v2.4.2 + +
    +
  • Fixed crash when opening VBSP files with no pak file lump. +
  • +
+ + + v2.4.1 + +
    +
  • Fixed crash in CProcStream. +
  • +
  • Fixed VPK signature check. +
  • +
  • Workaround for crash in .Net wrapper. +
  • +
+ + v2.4.0 + +
    +
  • Added support for GCF files larger than 4 GB. +
  • +
+ + v2.3.0 + +
    +
  • Added support for x64. +
  • +
  • Added Visual Studio 2010 solution. +
  • +
  • Added Visual Studio 2008 solution.. +
  • +
  • Removed Visual Studio 2003 solution. +
  • +
+ + v2.2.0 + +
    +
  • Added support for packages larger than 4 GB. +
  • +
+ + v2.1.2 + +
    +
  • Added support for new VBSP file format. +
  • +
+ + v2.1.1 + +
    +
  • Added support for new VPK file format. +
  • +
  • Added VPK file validation. +
  • +
  • Fixed crash when closing VPK files. +
  • +
+ + v2.1.0 + +
    +
  • Added VPK file support. +
  • +
+ + v2.0.11 + +
    +
  • Added VBSP .lmp support. +
  • +
  • Fixed support for files over 2 GB. +
  • +
+ + v2.0.10 + +
    +
  • Added Last Version Played attribute to NCF file. +
  • +
  • Fixed change to directory entry folder terminator. +
  • +
+ + v2.0.9 + +
    +
  • Added Last Version Played attribute to GCF file. +
  • +
+ + v2.0.8 + +
    +
  • Improved GCF version check. +
  • +
  • Fixed fragmentation header checksum after defragment. +
  • +
+ + v2.0.7 + +
    +
  • Added different search string comparisons. +
  • +
  • Added Visual Studio 2005 solution. +
  • +
  • Improved package type tests. +
  • +
+ + v2.0.6 + +
    +
  • Added generic write support to mapping interface. +
  • +
  • Added no recurse option to FindFirst()/FindNext(). +
  • +
  • Improved package item attribute consistency. +
  • +
  • Fixed GCC visibility support. +
  • +
  • Fixed unnecessary GCF bounds check. +
  • +
  • Fixed BSP unused lump check.
  • +
+ + v2.0.5 + +
    +
  • Added Linux support. +
  • +
  • Fixed near infinite find next recursion. +
  • +
+ + v2.0.4 + +
    +
  • Fixed bug in GCF file defragmentation progress. +
  • +
+ + v2.0.3 + +
    +
  • Added NCF file support. +
  • +
+ + v2.0.2 + +
    +
  • Added GCF file defragmentation. +
  • +
  • Added fragmentation property to GCF files. +
  • +
  • Added Dark Messiah VBSP support. +
  • +
  • Fixed hlPackageCreateStream() bug. +
  • +
  • Fixed CMapping::GetTotalMemoryUsed() calculation. +
  • +
  • Fixed PAK file path parsing. +
  • +
  • Improved error messages. +
  • +
  • Improved file mapping performance. +
  • +
+ + v2.0.1 + +
    +
  • Added memory tracking. +
  • +
  • Improved view management. +
  • +
  • Fixed memory mapping bug. +
  • +
  • Fixed user data bug in proc reader. +
  • +
  • Fixed WAD file GetImageData() bug. +
  • +
  • Fixed default mapping stream view size. +
  • +
  • Fixed a minor memory leak. +
  • +
+ + v2.0.0 + +
    +
  • Rewrote entire library.
  • +
  • Open packages from anywhere (files, memory, abstract streams).
  • +
  • Get package and item attributes.
  • +
  • Stream package data.
  • +
  • Validate package data.
  • +
  • Added a C wrapper.
  • +
  • Improved and optimized package loading code.
  • +
  • Improved package detection.
  • +
+ + v1.1.8 + +
    +
  • Added XZP file support.
  • +
+ + v1.1.7 + +
    +
  • Added Source engine BSP support.
  • +
+ + v1.1.6 + +
    +
  • Added mipmap level option to CWADFile.
  • +
+ + v1.1.5 + +
    +
  • Improved WAD file support.
  • +
+ + v1.1.4 + +
    +
  • Improved detection of corrupt packages.
  • +
+ + v1.1.3 + +
    +
  • Extended CGCFFile.
  • +
  • Extended CFileMapping and CPrimitiveFileMapping to allow for volatile access.
  • +
  • Fixed CPackageUtility::Extract() bug caused by illegal characters.
  • +
  • Files of size 0 B are now treated as valid files.
  • +
+ + v1.1.2 + +
    +
  • Extended CPackage.
  • +
  • Extended CMappedPackage.
  • +
  • Improved error messages for system calls.
  • +
+ + v1.1.1 + +
    +
  • Fixed last error not being set in CMappedPackage::Open().
  • +
+ + v1.1.0 + +
    +
  • Rewrote mapping code to be more flexible.
  • +
  • Packages located on disk or in memory can now be loaded.
  • +
  • Optimized file mapping.
  • +
  • Fixed CPackage::Root bug.
  • +
  • Fixed CGCFFile::GetFileSizeOnDisk() bug.
  • +
+ + v1.0.4 + +
    +
  • Fixed CPackage memory leak.
  • +
  • Fixed CMappedPackage initialization bug.
  • +
  • Fixed CMappedPackage deinitialization bug.
  • +
  • Changed CDirectoryItem::Parent to a CDirectoryFolder.
  • +
  • Extended CWADFile.
  • +
  • Added CBSPFile which acts like CWADFile on a BSP's textures.
  • +
+ + v1.0.3 + +
    +
  • Extended CWADFile.
  • +
  • Changed GetFileSizeEx() to GetFileSize() (Not all versions of Windows supported the former).
  • +
+ + v1.0.2 + +
    +
  • Extended CPackage.
  • +
  • Extended CGCFFile.
  • +
  • Converted from bool to BOOL.
  • +
  • HLLib now used by GCFScape.
  • +
+ + v1.0.1 + +
    +
  • Added callback functionality to CPackageUtility::Extract().
  • +
  • Extended CGCFFile.
  • +
  • Minor bug fixes.
  • +
+ + v1.0.0 + +
    +
  • Original build.
  • +
+
+
+
Modified: Jan 22nd, 2017 - 6:09:30 pm[ 72146 Views ] +
+
+

+
[ 1 2 + 3 + ]

+
+
+
1. Da_FileServerPosted: Sep 5th, 2004 - 12:05:16 am +
+
+

+ Well, this looks like a pretty spiffy library... but you should create dsw and dsp files for people who + are jacked with VC++6. But I'm not one of them (I have neither--I compile them all by hand using .NET + toolkit and lots of microsoft SDK's happy).
+
+

+
+
+
2. NemPosted: Sep 5th, 2004 - 8:37:03 am +
+
+

If I had Visual Studio 6.0 I would have but I don't. That said, there is no + reason to need to compile the library (as the binaries are included) unless you want to make changes to + it and if a Visual Studio 6.0 user does want to make changes, it is not to hard for them to convert (or + recreate) the project files.

Visual Studio 6.0 users might also be interested in the free build + of Visual + C++ .NET 2005 Express Beta from Microsoft.
+
+

+
+
+
3. VarsityPosted: Dec 31st, 2005 - 2:37:21 pm +
+
+
Will I be able to use HLLib in a C# Express project?
+

+
+
+
4. NemPosted: Dec 31st, 2005 - 3:26:48 pm +
+
+
If you wrote a C++ .NET wrapper.
+

+
+
+
5. VarsityPosted: Jan 4th, 2006 - 10:09:02 am +
+
+
.NET allows different languages to coexsist in the same project, or something along + those lines. Wouldn't simply compiling HLLib into C++ .NET do the trick?
+

+
+
+
6. the-copyPosted: Jan 4th, 2006 - 11:44:09 am +
+
+
What is a C++ .NET wrapper and how can i do it? apple
+

+
+
+
7. NemModified: Jan 4th, 2006 - 3:04:05 pm +
+
+
C++ .NET is an extension of C++ and is managed in the same way that C# and VB code is + managed. However, C++ .NET still allows for native C++ code. If you want to use native C++ in a .NET + language other than C++ .NET you need to write a managed class that has the same structure as its + equivalent unmanaged class that performs the necessary conversions, eg:

+
Code:
+

// Original class
class CExample
{
public:
CExample()
{
+ string = 0;
}

~CExample()
{
delete []string;
}

char *GetString()
+ {
return string;
}

void SetString(const char *newString)
{
delete + []string;
string = new char[strlen(newString) + 1];
strcpy(string, newString);
+ }

private:
char *string;
};

using namespace + System::Runtime::InteropServices;

// Wrapper class
__gc class Example
{
public:
+ System::String *GetString()
{
return new System::String(example.GetString());
}

+ void SetString(System::String *newString)
{
char *string = (char + *)(Marshal::StringToHGlobalAnsi(newString)).ToPointer();
example.SetString(string);
+ Marshal::FreeHGlobal((System::IntPtr)string);
}

private:
CExample example;
};
+

+ However, I will be completing HLLib 2.0 soon which will have a C wrapper which you should be able to + directly import into any C# project (in fact almost any project in any language). +
+

+
+
+
8. the-copyPosted: Jan 5th, 2006 - 6:31:48 am +
+
+
+
Nem:
+
However, I will be completing HLLib 2.0 soon which will have a C wrapper which you + should be able to directly import into any C# project (in fact almost any project in any language). +

+ Oh thats great :D
+
+

+
+
+
9. ultradude25Modified: Sep 16th, 2009 - 11:03:22 am +
+
+
When I use HLExtract to defrag my GCF's I get this error on one of them:


+
+ Is there anything I can do to fix this?
+
+ Oh and all the other GCF's defragged fine.
+

+
+
+
10. etamPosted: Sep 29th, 2009 - 10:11:50 am +
+
+
Open Source FTW!
I created rpm packages for openSuSE 11.1 (and 11.0)

here + are repos: http://download.opensuse.org/repositories/home:/etamPL/
+
+ I separated this in 3 packages: libhl2, libhl2-devel, HLExtract
+

+
+
+
11. szwipModified: Oct 15th, 2009 - 7:43:05 am +
+
+
Hi

I try to use HLLib with MinGW compiler, but I have this + error:
C:\...\HLLib.h|740|error: 'HANDLE' does not name a type

Where is normally defined + HANDLE ?

EDIT 1: I have added this lines at the begin of HLLib.h, and now HANDLE is + ok:
#ifdef _WIN32
# include <windows.h>
#endif


EDIT 2: Now I've several + error with linker such as:
undefined reference to `HLLib::CPackage::GetRoot()'

The linker + finds HLLib.lib, but the c++ function are unknown (I use directly the c++ class and + functions)

EDIT 3: A solution, but it's ugly, it's to include all files from source in my + project. It compiles and links correctly :)
+ ============================================
+
+ Another problem : in the main.c of HLExtract, it's hl.h that is included (line 20), but it doesn't + exist. What is hl.h ?
+
+ Thank.
+

+
+
+
12. NemPosted: Oct 16th, 2009 - 12:35:53 am +
+
+
You need to include ..\lib\HLLib.h not <hl.h> in Main.c; the latter is for the + Linux environment. The top should probably read:

+
Code:
+
#ifdef _WIN32
# include "..\lib\HLLib.h"
# ifdef _MSC_VER
# pragma + comment(lib, "../../../lib/HLLib.lib")
# endif
#else
# include <hl.h>
#endif
+
+ Including Windows.h before HLLib.h should work fine without modifying any HLLib files.
+
+ If you aren't using Visual Studio, you should build your own .lib and .dll. +
+

+
+
+
13. FunsizePosted: Dec 22nd, 2009 - 6:19:50 am +
+
+
Just noticed that the link HLLib v2.2.0 Archive (338 KB) links to the + non-existent file http://nemesis.thewavelength.net/files/files/hllib212.zip + rather than http://nemesis.thewavelength.net/files/files/hllib220.zip + which is what it should be.
+

+
+
+
14. NemPosted: Dec 28th, 2009 - 11:37:12 am +
+
+
Thanks, fixed. free
+

+
+
+
15. MadJawaPosted: Dec 29th, 2009 - 3:12:02 pm +
+
+
Hey, I just downloaded the sources and tried to compile them on Linux, and I got + errors about functions like "strlen", etc. I had to include <string.h> in 2 or 3 files in HLLib to + be able to compile it.
+

+
[ 1 2 + 3 + ]

+ +
+
+
+
Miscellaneous
+ +

+
+
Login
+
+
+
Username:
+
+
+
Password:
+
+
+
Store Password
+
+
+
+
+ +
+
+
New Users
+ +
+ +
+
+
+
+
+
Newest Member
+
» Galina38
+
+

+
+
Elite Spammers
+ +
+
+ + + +
+
+
+
+
+
Nem's Tools v2.0 © 2006 Ryan Gregg.
Execution + time: 0.07963s; Queries: 14.
+
+
+
+ + + \ No newline at end of file -- cgit v1.2.3