<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[einbinden einer statischen Bibliothek]]></title><description><![CDATA[<p>Hallo, ich würde gerne in meinem Programm eine statische Bibliotek verwenden die ich im Internet entdeckt habe, erzeugen eines virtuellen Filesystems, jetzt habe ich die *.lib datei und 2 heasderdateien leider sind die headerdateien nicht in ansi-c geschrieben. Meine Frage nun: kann man die Umschreiben um die *.lib dann zu verwenden? ich post mal die 2 header Dateien</p>
<pre><code class="language-cpp">//****************************************************************************
//**
//**    VFS_TYPES.H
//**    Header - Virtual File System Configuration
//**
//**	Project:	VFS
//**	Component:	VFS
//**    Author:		Michael Walter
//**
//**	History:
//**		25.07.2001		Created (Michael Walter)
//**
//****************************************************************************
#ifndef VFS_VFS_CONFIG_H
#define VFS_VFS_CONFIG_H

//============================================================================
//    COMPILER SETTINGS
//============================================================================
#ifdef _MSC_VER
#pragma warning ( disable : 4786 )
#endif

//============================================================================
//    INTERFACE REQUIRED HEADERS
//============================================================================
#include &lt;vector&gt;
#include &lt;map&gt;
#include &lt;string&gt;
#include &lt;cstring&gt;

//============================================================================
//    WIN32 CONFIGURATION
//============================================================================
#ifdef _WIN32

#	include &lt;windows.h&gt;
#	include &lt;io.h&gt;
#	if defined( _MSC_VER )
#		pragma comment( lib, &quot;vfs.lib&quot; )
#		pragma warning( disable : 4311 )
#		pragma warning( disable : 4312 )
#		if defined( _DEBUG )
#			define VFS_DEBUG
#		endif
#	endif

//============================================================================
//    PLATFORM-DEPENDANT FUNCTIONS
//============================================================================
#	define VFS_UNLINK( strAbsoluteFileName )			( ( _wunlink( ( strAbsoluteFileName ).c_str() ) == 0 ) ? VFS_TRUE : VFS_FALSE )
#	define VFS_RENAME( strAbsoluteFileName, strTo )		( ( _wrename( ( strAbsoluteFileName ).c_str(), strTo.c_str() ) == 0 ) ? VFS_TRUE : VFS_FALSE )
#	define VFS_MKDIR( strAbsoluteDirName )				( ( _wmkdir( ( strAbsoluteDirName ).c_str() ) == 0 ) ? VFS_TRUE : VFS_FALSE )
#	define VFS_RMDIR( strAbsoluteDirName )				( ( _wrmdir( ( strAbsoluteDirName ).c_str() ) == 0 ) ? VFS_TRUE : VFS_FALSE )
#	define VFS_EXISTS( strAbsoluteFileName )			( ( GetFileAttributesW( ( strAbsoluteFileName ).c_str() ) != 0xFFFFFFFF ) ? VFS_TRUE : VFS_FALSE )
#	define VFS_IS_DIR( strAbsoluteDirName )				( ( GetFileAttributesW( ( strAbsoluteDirName ).c_str() ) != 0xFFFFFFFF &amp;&amp; ( GetFileAttributesW( strAbsoluteDirName.c_str() ) &amp; FILE_ATTRIBUTE_DIRECTORY ) == FILE_ATTRIBUTE_DIRECTORY ) ? VFS_TRUE : VFS_FALSE )
#	define VFS_FOPEN( strAbsoluteFileName, strAccess )	( _wfopen( ( strAbsoluteFileName ).c_str(), ( strAccess ).c_str() ) )
#	define VFS_RESIZE( pFile, lSize )					( ( _chsize( m_pFile-&gt;_file, lSize ) == 0 ) ? VFS_TRUE : VFS_FALSE )
#	define VFS_GETSIZE( pFile )							( _filelength( m_pFile-&gt;_file ) )

//============================================================================
//    INTERFACE DEFINITIONS / ENUMERATIONS / SIMPLE TYPEDEFS
//============================================================================
// Numeric Types.
typedef bool						VFS_BOOL;
typedef unsigned char				VFS_BYTE;
typedef unsigned short				VFS_WORD;
typedef unsigned long				VFS_DWORD;
typedef int							VFS_INT;
typedef unsigned int				VFS_UINT;
typedef long						VFS_LONG;

// Numeric Macros.
static const VFS_BOOL VFS_TRUE =	true;
static const VFS_BOOL VFS_FALSE =	false;

// String types.
typedef wchar_t						VFS_CHAR;
typedef wchar_t*					VFS_PSTR;
typedef const wchar_t*				VFS_PCSTR;
typedef std::wstring				VFS_String;

// String Macros.
#define VFS_TEXT( string )			L ## string

// Loword/Hiword Macros (for Versioning)
#define VFS_HIBYTE( word )		( ( VFS_BYTE )( ( ( VFS_WORD ) word ) &gt;&gt; 8 ) )
#define VFS_LOBYTE( word )		( ( VFS_BYTE )( ( ( VFS_WORD ) word ) &amp; 0xFF ) )
#define VFS_HIWORD( dword )		( ( VFS_WORD )( ( ( VFS_DWORD ) dword ) &gt;&gt; 16 ) )
#define VFS_LOWORD( dword )		( ( VFS_WORD )( ( ( VFS_DWORD ) dword ) &amp; 0xFFFF ) )
#define VFS_MAKE_WORD( lo, hi )	( ( VFS_WORD )( ( ( VFS_BYTE ) lo ) | ( ( VFS_WORD ) ( ( ( VFS_BYTE ) hi ) &lt;&lt; 8 ) ) ) )
#define VFS_MAKE_DWORD( lo, hi )	( ( VFS_DWORD )( ( ( VFS_WORD ) lo ) | ( ( VFS_DWORD ) ( ( ( VFS_WORD ) hi ) &lt;&lt; 16 ) ) ) )

//============================================================================
//    INTERFACE CLASS PROTOTYPES / EXTERNAL CLASS REFERENCES
//============================================================================
//============================================================================
//    INTERFACE STRUCTURES / UTILITY CLASSES
//============================================================================
//============================================================================
//    INTERFACE DATA DECLARATIONS
//============================================================================
//============================================================================
//    INTERFACE FUNCTION PROTOTYPES
//============================================================================
inline VFS_BOOL VFS_FIND_FILE( const VFS_String&amp; strAbsoluteFileName, VFS_String&amp; strFoundName, VFS_BOOL&amp; bIsDir, VFS_LONG&amp; lSize, VFS_INT nMode ) { static HANDLE hFindFile = NULL; WIN32_FIND_DATAW wfd; if( nMode == 0 ) { if( ( hFindFile = FindFirstFileW( strAbsoluteFileName.c_str(), &amp;wfd ) ) == INVALID_HANDLE_VALUE ) return VFS_FALSE;  strFoundName = wfd.cFileName; bIsDir = ( wfd.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY ) == FILE_ATTRIBUTE_DIRECTORY; lSize = wfd.nFileSizeLow; return VFS_TRUE; } else if( nMode == 1 ) { if( !FindNextFileW( hFindFile, &amp;wfd ) ) return VFS_FALSE; strFoundName = wfd.cFileName; bIsDir = ( wfd.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY ) == FILE_ATTRIBUTE_DIRECTORY; lSize = wfd.nFileSizeLow; return VFS_TRUE; } else if( nMode == 2 ) { return FindClose( hFindFile ) ? VFS_TRUE : VFS_FALSE; } return VFS_FALSE; }

//============================================================================
//    INTERFACE OBJECT CLASS DEFINITIONS
//============================================================================
//============================================================================
//    TRAILING CONFIGURATION SECTIONS
//============================================================================
//============================================================================
//    INTERFACE TRAILING HEADERS
//============================================================================

#else
#	error VFS: Unsupported Platform. Please add a configuration section for your platform and publish it to the community be emailing me at michiwalter@gmx.de
#endif

#endif // __VFS_VFS_TYPES_H__
</code></pre>
<p>und die andere</p>
<pre><code>//****************************************************************************
//**
//**	VFS.H
//**	Header - Virtual File System
//**
//**	Project:	VFS
//**	Component:	VFS
//**	Author:		Michael Walter
//**
//**	History:
//**		18.06.2001		Created (Michael Walter)
//**
//**	Note:
//**		There may only be 32 used Filters per Archive.
//**		The length of an Archive Entity's Names may not exceed VFS_MAX_NAME_LENGTH
//**			UNICODE Characters.
//**		Never use file names like ../../bla/bla.txt or something like that, because the VFS
//**			doesn't have something like a current drive and/or directory.
//**		Never use file names like &quot;bla.vfsa&quot; or &quot;bla.&quot; + VFS_ARCHIVE_FILE_EXTENSION.
//**		Archives that have been created on Little Endian Machines can't be used under
//**			Big Endian Machines and vice versa.
//**
//**	New:
//**		If the VFS_File_Read() or the VFS_FilterReadProc is called for EOF, it returns just VFS_FALSE
//**			WITHOUT settings an Error Code. This allows nice loops like
//**				while( Read( ... ) ) Write( ... );
//**			Check for the VFS_GetLastError() == VFS_ERROR_NONE after such a loop!
//**		For small global Information, use the SaveConfigData() and LoadConfigData() functions. For
//**			other, dynamic issues you'd also just use the Encode()/Decode() Callbacks to store for
//**			for instance a decryption md5 in front of each file.
//**
//**	Note:
//**		Though VFS is designed for platform independence, it will be the job of the readers of the
//**		tutorial to write a version of it that supports case-sensitive file system.
//**
//****************************************************************************
#ifndef VFS_VFS_H
#define VFS_VFS_H

//============================================================================
//    INTERFACE REQUIRED HEADERS
//============================================================================
#include &quot;VFS_Config.h&quot;

//============================================================================
//    INTERFACE DEFINITIONS / ENUMERATIONS / SIMPLE TYPEDEFS
//============================================================================
// The Handle Type.
enum VFS_Handle			{ VFS_HANDLE_FORCE_DWORD = 0xFFFFFFFF };

// Various Constants.
static const VFS_WORD VFS_VERSION			= VFS_MAKE_WORD( 0, 1 );	// Version 1.0
static const VFS_CHAR VFS_PATH_SEPARATOR		= VFS_TEXT( '/' );
static const VFS_CHAR* VFS_ARCHIVE_FILE_EXTENSION	= VFS_TEXT( &quot;VFSA&quot; );
static const VFS_MAX_NAME_LENGTH			= 64;
static const VFS_Handle VFS_INVALID_HANDLE_VALUE	= ( VFS_Handle ) 0;
static const VFS_DWORD VFS_INVALID_DWORD_VALUE	= 0xFFFFFFFF;
static const VFS_LONG VFS_INVALID_LONG_VALUE	= -1;
#define VFS_INVALID_POINTER_VALUE			NULL

// The File_Open/Create() Flags.
enum VFS_OpenFlags{
	VFS_READ	= 0x0001,
	VFS_WRITE	= 0x0002
};

// The File_Seek() Origin.
enum VFS_SeekOrigin{
	VFS_SET,
	VFS_CURRENT,
	VFS_END
};

// The Error Constants.
enum VFS_ErrorCode{
	VFS_ERROR_NONE,
	VFS_ERROR_NOT_INITIALIZED_YET,
	VFS_ERROR_ALREADY_INITIALIZED,
	VFS_ERROR_ALREADY_EXISTS,
	VFS_ERROR_NOT_FOUND,
	VFS_ERROR_INVALID_PARAMETER,
	VFS_ERROR_GENERIC,
	VFS_ERROR_INVALID_ERROR_CODE,
	VFS_ERROR_NO_ROOT_PATHS_DEFINED,
	VFS_ERROR_PERMISSION_DENIED,
	VFS_ERROR_IN_USE,
	VFS_ERROR_CANT_MANIPULATE_ARCHIVES,
	VFS_ERROR_NOT_AN_ARCHIVE,
	VFS_ERROR_INVALID_ARCHIVE_FORMAT,
	VFS_ERROR_MISSING_FILTERS,
	VFS_NUM_ERRORS
};

// The Type of an Entity
enum VFS_EntityType{
	VFS_FILE,
	VFS_DIR,
	VFS_ARCHIVE
};

// The Filter Reader and Writer Procedures.
typedef VFS_BOOL ( *VFS_FilterReadProc )( VFS_BYTE* pBuffer, VFS_DWORD dwBytesToRead, VFS_DWORD* pBytesRead = NULL );
typedef VFS_BOOL ( *VFS_FilterWriteProc )( const VFS_BYTE* pBuffer, VFS_DWORD dwBytesToWrite, VFS_DWORD* pBytesWritten = NULL );

// An Iteration Procedure (return VFS_FALSE to cancel Iteration).
typedef VFS_BOOL ( *VFS_DirIterationProc )( const struct VFS_EntityInfo&amp; Info, void* pParam );

// A List of Filter Names.
typedef std::vector&lt; const class VFS_Filter* &gt; VFS_FilterList;
typedef std::vector&lt; VFS_String &gt; VFS_FilterNameList;
typedef std::vector&lt; VFS_String &gt; VFS_RootPathList;
typedef std::vector&lt; struct VFS_EntityInfo &gt; VFS_EntityInfoList;
typedef std::map&lt; VFS_String, VFS_String &gt; VFS_FileNameMap;

//============================================================================
//    INTERFACE COMPONENT HEADERS
//============================================================================
//============================================================================
//    INTERFACE CLASS PROTOTYPES / EXTERNAL CLASS REFERENCES
//============================================================================
//============================================================================
//    INTERFACE STRUCTURES / UTILITY CLASSES
//============================================================================
// A Filter for the VFS.
class VFS_Filter
{
public:
	// Constructor / Destructor.
	VFS_Filter()
	{}
	virtual ~VFS_Filter()
	{}

	// Encoding / Decoding Procedures.
	virtual VFS_BOOL Encode( VFS_FilterReadProc Reader, VFS_FilterWriteProc Writer, const struct VFS_EntityInfo&amp; DecodedInfo ) const = 0;
	virtual VFS_BOOL Decode( VFS_FilterReadProc Reader, VFS_FilterWriteProc Writer, const struct VFS_EntityInfo&amp; EncodedInfo ) const = 0;

	// Filter Configuration Data Management.
	virtual VFS_BOOL LoadConfigData( VFS_FilterReadProc Reader ) = 0;
	virtual VFS_BOOL SaveConfigData( VFS_FilterWriteProc Writer ) const = 0;
	virtual VFS_DWORD GetConfigDataSize() const = 0;

	// Information.
	virtual VFS_PCSTR GetName() const = 0;
	virtual VFS_PCSTR GetDescription() const = 0;
};

// Information about a VFS Entity.
struct VFS_EntityInfo{
	// The Entity Type.
	VFS_EntityType eType;

	// Is the Entity archived (Archive files are NEVER archived)?
	VFS_BOOL bArchived;

	// The complete Path (including the Name) and the Name.
	VFS_String strPath;
	VFS_String strName;

	// The Size ( 0 for Directories ).
	VFS_LONG lSize;
};

//============================================================================
//    INTERFACE DATA DECLARATIONS
//============================================================================
//============================================================================
//    INTERFACE FUNCTION PROTOTYPES
//============================================================================
///////////////////////////////////////////////////////////////////////////////
// Basic VFS Interface (the error handling functions and the VFS_GetVersion() function may be called even if the VFS isn't initialized yet. The VFS_GetErrorString() function returns the string associated with VFS_ERROR_INVALID_ERROR_CODE if the parameter eError is invalid. You can't get Information about Archives using the VFS_GetEntityInfo() structure because it will report information about the virtual Directory the Archive represents instead).
///////////////////////////////////////////////////////////////////////////////
// Initialize / Shutdown the VFS.
VFS_BOOL VFS_Init();
VFS_BOOL VFS_Shutdown();
VFS_BOOL VFS_IsInit();

// Register / Unregister a Filter.
VFS_BOOL		VFS_RegisterFilter( VFS_Filter* pFilter );
VFS_BOOL		VFS_UnregisterFilter( VFS_Filter* pFilter );
VFS_BOOL		VFS_UnregisterFilter( VFS_DWORD dwIndex );
VFS_BOOL		VFS_UnregisterFilter( const VFS_String&amp; strFilterName );
VFS_BOOL		VFS_ExistsFilter( const VFS_String&amp; strFilterName );
const VFS_Filter		*VFS_GetFilter( const VFS_String&amp; strFilterName );
VFS_DWORD		VFS_GetNumFilters();
const VFS_Filter* VFS_GetFilter( VFS_DWORD dwIndex );
VFS_BOOL VFS_GetFilters( VFS_FilterList&amp; Filters );
VFS_BOOL VFS_GetFilterNames( VFS_FilterNameList&amp; FilterNames );

// Root Path Handling.
VFS_BOOL VFS_AddRootPath( const VFS_String&amp; strRootPath );
VFS_BOOL VFS_RemoveRootPath( const VFS_String&amp; strRootPath );
VFS_BOOL VFS_RemoveRootPath( VFS_DWORD dwIndex );
VFS_DWORD VFS_GetNumRootPaths();
VFS_BOOL VFS_GetRootPath( VFS_DWORD dwIndex, VFS_String&amp; strRootPath );
VFS_BOOL VFS_GetRootPaths( VFS_RootPathList&amp; RootPaths );

// Flush the VFS (close all unused Archives etc).
VFS_BOOL VFS_Flush();

// Information.
VFS_BOOL VFS_ExistsEntity( const VFS_String&amp; strPath );
VFS_BOOL VFS_GetEntityInfo( const VFS_String&amp; strPath, VFS_EntityInfo&amp; Info );
VFS_WORD VFS_GetVersion();

// Error Handling.
VFS_ErrorCode VFS_GetLastError();
VFS_PCSTR VFS_GetErrorString( VFS_ErrorCode eError );

///////////////////////////////////////////////////////////////////////////////
// The File Interface (the file interface will try to create a file in each root path. If no root path has been added, the current directory will be used instead. You can't manipulate Archive Files.).
///////////////////////////////////////////////////////////////////////////////
// Create / Open / Close a File.
VFS_Handle VFS_File_Create( const VFS_String&amp; strFileName, VFS_DWORD dwFlags );
VFS_Handle VFS_File_Open( const VFS_String&amp; strFileName, VFS_DWORD dwFlags );
VFS_BOOL VFS_File_Close( VFS_Handle hFile );

// Read / Write from / to the File.
VFS_BOOL VFS_File_Read( VFS_Handle hFile, VFS_BYTE* pBuffer, VFS_DWORD dwToRead, VFS_DWORD* pRead = NULL );
VFS_BOOL VFS_File_Write( VFS_Handle hFile, const VFS_BYTE* pBuffer, VFS_DWORD dwToWrite, VFS_DWORD* pWritten = NULL );

// Direct File Reading / Writing.
VFS_BOOL VFS_File_ReadEntireFile( const VFS_String&amp; strFileName, VFS_BYTE* pBuffer, VFS_DWORD dwToRead = VFS_INVALID_DWORD_VALUE, VFS_DWORD* pRead = NULL );
VFS_BOOL VFS_File_WriteEntireFile( const VFS_String&amp; strFileName, const VFS_BYTE* pBuffer, VFS_DWORD dwToWrite, VFS_DWORD* pWritten = NULL );

// Positioning.
VFS_BOOL VFS_File_Seek( VFS_Handle hFile, VFS_LONG lPosition, VFS_SeekOrigin eOrigin = VFS_SET );
VFS_LONG VFS_File_Tell( VFS_Handle hFile );

// Sizing.
VFS_BOOL VFS_File_Resize( VFS_Handle hFile, VFS_LONG lSize );
VFS_LONG VFS_File_GetSize( VFS_Handle hFile );

// Information.
VFS_BOOL VFS_File_Exists( const VFS_String&amp; strFileName );
VFS_BOOL VFS_File_GetInfo( const VFS_String&amp; strFileName, VFS_EntityInfo&amp; Info );
VFS_BOOL VFS_File_GetInfo( VFS_Handle hFile, VFS_EntityInfo&amp; Info );

// File Management.
VFS_BOOL VFS_File_Delete( const VFS_String&amp; strFileName );
VFS_BOOL VFS_File_Copy( const VFS_String&amp; strFrom, const VFS_String&amp; strTo );
VFS_BOOL VFS_File_Move( const VFS_String&amp; strFrom, const VFS_String&amp; strTo );
VFS_BOOL VFS_File_Rename( const VFS_String&amp; strFrom, const VFS_String&amp; strTo );				// pszTo has to be a single File Name without a Path.

///////////////////////////////////////////////////////////////////////////////
// The Archive Interface (Never provide a extension for the archive, instead, change the VFS_ARCHIVE_EXTENSION definition and recompile; You can only create archives in the first root path. You can't manipulate Archives. Each entry VFS_FileNameMap consists of the source file name and the file name in the archive, for instance &quot;alpha/beta/gamma.txt&quot; =&gt; &quot;abg.txt&quot;).
///////////////////////////////////////////////////////////////////////////////
// Create an Archive.
VFS_BOOL VFS_Archive_CreateFromDirectory( const VFS_String&amp; strArchiveFileName, const VFS_String&amp; strDirName, const VFS_FilterNameList&amp; UsedFilters = VFS_FilterNameList(), VFS_BOOL bRecursive = VFS_TRUE );
VFS_BOOL VFS_Archive_CreateFromFileList( const VFS_String&amp; strArchiveFileName, const VFS_FileNameMap&amp; Files, const VFS_FilterNameList&amp; UsedFilters = VFS_FilterNameList() );

// Extract an Archive / File.
VFS_BOOL VFS_Archive_Extract( const VFS_String&amp; strArchiveFileName, const VFS_String&amp; strTargetDir );
VFS_BOOL VFS_Archive_ExtractFile( const VFS_String&amp; strArchiveFileName, const VFS_String&amp; strFile, const VFS_String&amp; strTargetFile );

// Information.
VFS_BOOL VFS_Archive_Exists( const VFS_String&amp; strArchiveFileName );
VFS_BOOL VFS_Archive_GetInfo( const VFS_String&amp; strArchiveFileName, VFS_EntityInfo&amp; Info );
VFS_BOOL VFS_Archive_GetUsedFilters( const VFS_String&amp; strArchiveFileName, VFS_FilterNameList&amp; FilterNames );

// Archive Management.
VFS_BOOL VFS_Archive_Delete( const VFS_String&amp; strArchiveFileName );

// Flush the Archive System.
VFS_BOOL VFS_Archive_Flush();

///////////////////////////////////////////////////////////////////////////////
// The Directory Interface (You can only create/delete standard directories in the first root path. You can't manipulate Dirs in Archives).
///////////////////////////////////////////////////////////////////////////////
// Directory Management.
VFS_BOOL VFS_Dir_Create( const VFS_String&amp; strDirName, VFS_BOOL bRecursive = VFS_FALSE );	// Recursive mode would create a directory c:\alpha\beta even if alpha doesn't exist.
VFS_BOOL VFS_Dir_Delete( const VFS_String&amp; strDirName, VFS_BOOL bRecursive = VFS_FALSE );	// Recursive mode would delete a directory c:\alpha even if it contains files and/or subdirectories.

// Information.
VFS_BOOL VFS_Dir_Exists( const VFS_String&amp; strDirName );
VFS_BOOL VFS_Dir_GetInfo( const VFS_String&amp; strDirName, VFS_EntityInfo&amp; Info );

// Iterate a Directory and call the iteration procedure for each 
VFS_BOOL VFS_Dir_Iterate( const VFS_String&amp; strDirName, VFS_DirIterationProc pIterationProc, VFS_BOOL bRecursive = VFS_FALSE, void* pParam = NULL );

// Get the Contents of a Directory.
VFS_BOOL VFS_Dir_GetContents( const VFS_String&amp; strDirName, VFS_EntityInfoList&amp; EntityInfoList, VFS_BOOL bRecursive = VFS_FALSE );

///////////////////////////////////////////////////////////////////////////////
// The Utility Interface (You may call the File Name Management Functions even if the VFS isn't initialized yet).
///////////////////////////////////////////////////////////////////////////////
// File Name Management Functions.
VFS_BOOL VFS_Util_GetPath( const VFS_String&amp; strFileName, VFS_String&amp; strPath );
VFS_BOOL VFS_Util_GetName( const VFS_String&amp; strFileName, VFS_String&amp; strName );
VFS_BOOL VFS_Util_GetBaseName( const VFS_String&amp; strFileName, VFS_String&amp; strBaseName );
VFS_BOOL VFS_Util_GetExtension( const VFS_String&amp; strFileName, VFS_String&amp; strExtension );
VFS_BOOL VFS_Util_IsAbsoluteFileName( const VFS_String&amp; strFileName );

//============================================================================
//    INTERFACE OBJECT CLASS DEFINITIONS
//============================================================================
//============================================================================
//    INTERFACE TRAILING HEADERS
//============================================================================

#endif // __VFS_H__
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/226447/einbinden-einer-statischen-bibliothek</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 10:46:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/226447.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 01 Nov 2008 11:00:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to einbinden einer statischen Bibliothek on Sat, 01 Nov 2008 11:00:30 GMT]]></title><description><![CDATA[<p>Hallo, ich würde gerne in meinem Programm eine statische Bibliotek verwenden die ich im Internet entdeckt habe, erzeugen eines virtuellen Filesystems, jetzt habe ich die *.lib datei und 2 heasderdateien leider sind die headerdateien nicht in ansi-c geschrieben. Meine Frage nun: kann man die Umschreiben um die *.lib dann zu verwenden? ich post mal die 2 header Dateien</p>
<pre><code class="language-cpp">//****************************************************************************
//**
//**    VFS_TYPES.H
//**    Header - Virtual File System Configuration
//**
//**	Project:	VFS
//**	Component:	VFS
//**    Author:		Michael Walter
//**
//**	History:
//**		25.07.2001		Created (Michael Walter)
//**
//****************************************************************************
#ifndef VFS_VFS_CONFIG_H
#define VFS_VFS_CONFIG_H

//============================================================================
//    COMPILER SETTINGS
//============================================================================
#ifdef _MSC_VER
#pragma warning ( disable : 4786 )
#endif

//============================================================================
//    INTERFACE REQUIRED HEADERS
//============================================================================
#include &lt;vector&gt;
#include &lt;map&gt;
#include &lt;string&gt;
#include &lt;cstring&gt;

//============================================================================
//    WIN32 CONFIGURATION
//============================================================================
#ifdef _WIN32

#	include &lt;windows.h&gt;
#	include &lt;io.h&gt;
#	if defined( _MSC_VER )
#		pragma comment( lib, &quot;vfs.lib&quot; )
#		pragma warning( disable : 4311 )
#		pragma warning( disable : 4312 )
#		if defined( _DEBUG )
#			define VFS_DEBUG
#		endif
#	endif

//============================================================================
//    PLATFORM-DEPENDANT FUNCTIONS
//============================================================================
#	define VFS_UNLINK( strAbsoluteFileName )			( ( _wunlink( ( strAbsoluteFileName ).c_str() ) == 0 ) ? VFS_TRUE : VFS_FALSE )
#	define VFS_RENAME( strAbsoluteFileName, strTo )		( ( _wrename( ( strAbsoluteFileName ).c_str(), strTo.c_str() ) == 0 ) ? VFS_TRUE : VFS_FALSE )
#	define VFS_MKDIR( strAbsoluteDirName )				( ( _wmkdir( ( strAbsoluteDirName ).c_str() ) == 0 ) ? VFS_TRUE : VFS_FALSE )
#	define VFS_RMDIR( strAbsoluteDirName )				( ( _wrmdir( ( strAbsoluteDirName ).c_str() ) == 0 ) ? VFS_TRUE : VFS_FALSE )
#	define VFS_EXISTS( strAbsoluteFileName )			( ( GetFileAttributesW( ( strAbsoluteFileName ).c_str() ) != 0xFFFFFFFF ) ? VFS_TRUE : VFS_FALSE )
#	define VFS_IS_DIR( strAbsoluteDirName )				( ( GetFileAttributesW( ( strAbsoluteDirName ).c_str() ) != 0xFFFFFFFF &amp;&amp; ( GetFileAttributesW( strAbsoluteDirName.c_str() ) &amp; FILE_ATTRIBUTE_DIRECTORY ) == FILE_ATTRIBUTE_DIRECTORY ) ? VFS_TRUE : VFS_FALSE )
#	define VFS_FOPEN( strAbsoluteFileName, strAccess )	( _wfopen( ( strAbsoluteFileName ).c_str(), ( strAccess ).c_str() ) )
#	define VFS_RESIZE( pFile, lSize )					( ( _chsize( m_pFile-&gt;_file, lSize ) == 0 ) ? VFS_TRUE : VFS_FALSE )
#	define VFS_GETSIZE( pFile )							( _filelength( m_pFile-&gt;_file ) )

//============================================================================
//    INTERFACE DEFINITIONS / ENUMERATIONS / SIMPLE TYPEDEFS
//============================================================================
// Numeric Types.
typedef bool						VFS_BOOL;
typedef unsigned char				VFS_BYTE;
typedef unsigned short				VFS_WORD;
typedef unsigned long				VFS_DWORD;
typedef int							VFS_INT;
typedef unsigned int				VFS_UINT;
typedef long						VFS_LONG;

// Numeric Macros.
static const VFS_BOOL VFS_TRUE =	true;
static const VFS_BOOL VFS_FALSE =	false;

// String types.
typedef wchar_t						VFS_CHAR;
typedef wchar_t*					VFS_PSTR;
typedef const wchar_t*				VFS_PCSTR;
typedef std::wstring				VFS_String;

// String Macros.
#define VFS_TEXT( string )			L ## string

// Loword/Hiword Macros (for Versioning)
#define VFS_HIBYTE( word )		( ( VFS_BYTE )( ( ( VFS_WORD ) word ) &gt;&gt; 8 ) )
#define VFS_LOBYTE( word )		( ( VFS_BYTE )( ( ( VFS_WORD ) word ) &amp; 0xFF ) )
#define VFS_HIWORD( dword )		( ( VFS_WORD )( ( ( VFS_DWORD ) dword ) &gt;&gt; 16 ) )
#define VFS_LOWORD( dword )		( ( VFS_WORD )( ( ( VFS_DWORD ) dword ) &amp; 0xFFFF ) )
#define VFS_MAKE_WORD( lo, hi )	( ( VFS_WORD )( ( ( VFS_BYTE ) lo ) | ( ( VFS_WORD ) ( ( ( VFS_BYTE ) hi ) &lt;&lt; 8 ) ) ) )
#define VFS_MAKE_DWORD( lo, hi )	( ( VFS_DWORD )( ( ( VFS_WORD ) lo ) | ( ( VFS_DWORD ) ( ( ( VFS_WORD ) hi ) &lt;&lt; 16 ) ) ) )

//============================================================================
//    INTERFACE CLASS PROTOTYPES / EXTERNAL CLASS REFERENCES
//============================================================================
//============================================================================
//    INTERFACE STRUCTURES / UTILITY CLASSES
//============================================================================
//============================================================================
//    INTERFACE DATA DECLARATIONS
//============================================================================
//============================================================================
//    INTERFACE FUNCTION PROTOTYPES
//============================================================================
inline VFS_BOOL VFS_FIND_FILE( const VFS_String&amp; strAbsoluteFileName, VFS_String&amp; strFoundName, VFS_BOOL&amp; bIsDir, VFS_LONG&amp; lSize, VFS_INT nMode ) { static HANDLE hFindFile = NULL; WIN32_FIND_DATAW wfd; if( nMode == 0 ) { if( ( hFindFile = FindFirstFileW( strAbsoluteFileName.c_str(), &amp;wfd ) ) == INVALID_HANDLE_VALUE ) return VFS_FALSE;  strFoundName = wfd.cFileName; bIsDir = ( wfd.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY ) == FILE_ATTRIBUTE_DIRECTORY; lSize = wfd.nFileSizeLow; return VFS_TRUE; } else if( nMode == 1 ) { if( !FindNextFileW( hFindFile, &amp;wfd ) ) return VFS_FALSE; strFoundName = wfd.cFileName; bIsDir = ( wfd.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY ) == FILE_ATTRIBUTE_DIRECTORY; lSize = wfd.nFileSizeLow; return VFS_TRUE; } else if( nMode == 2 ) { return FindClose( hFindFile ) ? VFS_TRUE : VFS_FALSE; } return VFS_FALSE; }

//============================================================================
//    INTERFACE OBJECT CLASS DEFINITIONS
//============================================================================
//============================================================================
//    TRAILING CONFIGURATION SECTIONS
//============================================================================
//============================================================================
//    INTERFACE TRAILING HEADERS
//============================================================================

#else
#	error VFS: Unsupported Platform. Please add a configuration section for your platform and publish it to the community be emailing me at michiwalter@gmx.de
#endif

#endif // __VFS_VFS_TYPES_H__
</code></pre>
<p>und die andere</p>
<pre><code>//****************************************************************************
//**
//**	VFS.H
//**	Header - Virtual File System
//**
//**	Project:	VFS
//**	Component:	VFS
//**	Author:		Michael Walter
//**
//**	History:
//**		18.06.2001		Created (Michael Walter)
//**
//**	Note:
//**		There may only be 32 used Filters per Archive.
//**		The length of an Archive Entity's Names may not exceed VFS_MAX_NAME_LENGTH
//**			UNICODE Characters.
//**		Never use file names like ../../bla/bla.txt or something like that, because the VFS
//**			doesn't have something like a current drive and/or directory.
//**		Never use file names like &quot;bla.vfsa&quot; or &quot;bla.&quot; + VFS_ARCHIVE_FILE_EXTENSION.
//**		Archives that have been created on Little Endian Machines can't be used under
//**			Big Endian Machines and vice versa.
//**
//**	New:
//**		If the VFS_File_Read() or the VFS_FilterReadProc is called for EOF, it returns just VFS_FALSE
//**			WITHOUT settings an Error Code. This allows nice loops like
//**				while( Read( ... ) ) Write( ... );
//**			Check for the VFS_GetLastError() == VFS_ERROR_NONE after such a loop!
//**		For small global Information, use the SaveConfigData() and LoadConfigData() functions. For
//**			other, dynamic issues you'd also just use the Encode()/Decode() Callbacks to store for
//**			for instance a decryption md5 in front of each file.
//**
//**	Note:
//**		Though VFS is designed for platform independence, it will be the job of the readers of the
//**		tutorial to write a version of it that supports case-sensitive file system.
//**
//****************************************************************************
#ifndef VFS_VFS_H
#define VFS_VFS_H

//============================================================================
//    INTERFACE REQUIRED HEADERS
//============================================================================
#include &quot;VFS_Config.h&quot;

//============================================================================
//    INTERFACE DEFINITIONS / ENUMERATIONS / SIMPLE TYPEDEFS
//============================================================================
// The Handle Type.
enum VFS_Handle			{ VFS_HANDLE_FORCE_DWORD = 0xFFFFFFFF };

// Various Constants.
static const VFS_WORD VFS_VERSION			= VFS_MAKE_WORD( 0, 1 );	// Version 1.0
static const VFS_CHAR VFS_PATH_SEPARATOR		= VFS_TEXT( '/' );
static const VFS_CHAR* VFS_ARCHIVE_FILE_EXTENSION	= VFS_TEXT( &quot;VFSA&quot; );
static const VFS_MAX_NAME_LENGTH			= 64;
static const VFS_Handle VFS_INVALID_HANDLE_VALUE	= ( VFS_Handle ) 0;
static const VFS_DWORD VFS_INVALID_DWORD_VALUE	= 0xFFFFFFFF;
static const VFS_LONG VFS_INVALID_LONG_VALUE	= -1;
#define VFS_INVALID_POINTER_VALUE			NULL

// The File_Open/Create() Flags.
enum VFS_OpenFlags{
	VFS_READ	= 0x0001,
	VFS_WRITE	= 0x0002
};

// The File_Seek() Origin.
enum VFS_SeekOrigin{
	VFS_SET,
	VFS_CURRENT,
	VFS_END
};

// The Error Constants.
enum VFS_ErrorCode{
	VFS_ERROR_NONE,
	VFS_ERROR_NOT_INITIALIZED_YET,
	VFS_ERROR_ALREADY_INITIALIZED,
	VFS_ERROR_ALREADY_EXISTS,
	VFS_ERROR_NOT_FOUND,
	VFS_ERROR_INVALID_PARAMETER,
	VFS_ERROR_GENERIC,
	VFS_ERROR_INVALID_ERROR_CODE,
	VFS_ERROR_NO_ROOT_PATHS_DEFINED,
	VFS_ERROR_PERMISSION_DENIED,
	VFS_ERROR_IN_USE,
	VFS_ERROR_CANT_MANIPULATE_ARCHIVES,
	VFS_ERROR_NOT_AN_ARCHIVE,
	VFS_ERROR_INVALID_ARCHIVE_FORMAT,
	VFS_ERROR_MISSING_FILTERS,
	VFS_NUM_ERRORS
};

// The Type of an Entity
enum VFS_EntityType{
	VFS_FILE,
	VFS_DIR,
	VFS_ARCHIVE
};

// The Filter Reader and Writer Procedures.
typedef VFS_BOOL ( *VFS_FilterReadProc )( VFS_BYTE* pBuffer, VFS_DWORD dwBytesToRead, VFS_DWORD* pBytesRead = NULL );
typedef VFS_BOOL ( *VFS_FilterWriteProc )( const VFS_BYTE* pBuffer, VFS_DWORD dwBytesToWrite, VFS_DWORD* pBytesWritten = NULL );

// An Iteration Procedure (return VFS_FALSE to cancel Iteration).
typedef VFS_BOOL ( *VFS_DirIterationProc )( const struct VFS_EntityInfo&amp; Info, void* pParam );

// A List of Filter Names.
typedef std::vector&lt; const class VFS_Filter* &gt; VFS_FilterList;
typedef std::vector&lt; VFS_String &gt; VFS_FilterNameList;
typedef std::vector&lt; VFS_String &gt; VFS_RootPathList;
typedef std::vector&lt; struct VFS_EntityInfo &gt; VFS_EntityInfoList;
typedef std::map&lt; VFS_String, VFS_String &gt; VFS_FileNameMap;

//============================================================================
//    INTERFACE COMPONENT HEADERS
//============================================================================
//============================================================================
//    INTERFACE CLASS PROTOTYPES / EXTERNAL CLASS REFERENCES
//============================================================================
//============================================================================
//    INTERFACE STRUCTURES / UTILITY CLASSES
//============================================================================
// A Filter for the VFS.
class VFS_Filter
{
public:
	// Constructor / Destructor.
	VFS_Filter()
	{}
	virtual ~VFS_Filter()
	{}

	// Encoding / Decoding Procedures.
	virtual VFS_BOOL Encode( VFS_FilterReadProc Reader, VFS_FilterWriteProc Writer, const struct VFS_EntityInfo&amp; DecodedInfo ) const = 0;
	virtual VFS_BOOL Decode( VFS_FilterReadProc Reader, VFS_FilterWriteProc Writer, const struct VFS_EntityInfo&amp; EncodedInfo ) const = 0;

	// Filter Configuration Data Management.
	virtual VFS_BOOL LoadConfigData( VFS_FilterReadProc Reader ) = 0;
	virtual VFS_BOOL SaveConfigData( VFS_FilterWriteProc Writer ) const = 0;
	virtual VFS_DWORD GetConfigDataSize() const = 0;

	// Information.
	virtual VFS_PCSTR GetName() const = 0;
	virtual VFS_PCSTR GetDescription() const = 0;
};

// Information about a VFS Entity.
struct VFS_EntityInfo{
	// The Entity Type.
	VFS_EntityType eType;

	// Is the Entity archived (Archive files are NEVER archived)?
	VFS_BOOL bArchived;

	// The complete Path (including the Name) and the Name.
	VFS_String strPath;
	VFS_String strName;

	// The Size ( 0 for Directories ).
	VFS_LONG lSize;
};

//============================================================================
//    INTERFACE DATA DECLARATIONS
//============================================================================
//============================================================================
//    INTERFACE FUNCTION PROTOTYPES
//============================================================================
///////////////////////////////////////////////////////////////////////////////
// Basic VFS Interface (the error handling functions and the VFS_GetVersion() function may be called even if the VFS isn't initialized yet. The VFS_GetErrorString() function returns the string associated with VFS_ERROR_INVALID_ERROR_CODE if the parameter eError is invalid. You can't get Information about Archives using the VFS_GetEntityInfo() structure because it will report information about the virtual Directory the Archive represents instead).
///////////////////////////////////////////////////////////////////////////////
// Initialize / Shutdown the VFS.
VFS_BOOL VFS_Init();
VFS_BOOL VFS_Shutdown();
VFS_BOOL VFS_IsInit();

// Register / Unregister a Filter.
VFS_BOOL		VFS_RegisterFilter( VFS_Filter* pFilter );
VFS_BOOL		VFS_UnregisterFilter( VFS_Filter* pFilter );
VFS_BOOL		VFS_UnregisterFilter( VFS_DWORD dwIndex );
VFS_BOOL		VFS_UnregisterFilter( const VFS_String&amp; strFilterName );
VFS_BOOL		VFS_ExistsFilter( const VFS_String&amp; strFilterName );
const VFS_Filter		*VFS_GetFilter( const VFS_String&amp; strFilterName );
VFS_DWORD		VFS_GetNumFilters();
const VFS_Filter* VFS_GetFilter( VFS_DWORD dwIndex );
VFS_BOOL VFS_GetFilters( VFS_FilterList&amp; Filters );
VFS_BOOL VFS_GetFilterNames( VFS_FilterNameList&amp; FilterNames );

// Root Path Handling.
VFS_BOOL VFS_AddRootPath( const VFS_String&amp; strRootPath );
VFS_BOOL VFS_RemoveRootPath( const VFS_String&amp; strRootPath );
VFS_BOOL VFS_RemoveRootPath( VFS_DWORD dwIndex );
VFS_DWORD VFS_GetNumRootPaths();
VFS_BOOL VFS_GetRootPath( VFS_DWORD dwIndex, VFS_String&amp; strRootPath );
VFS_BOOL VFS_GetRootPaths( VFS_RootPathList&amp; RootPaths );

// Flush the VFS (close all unused Archives etc).
VFS_BOOL VFS_Flush();

// Information.
VFS_BOOL VFS_ExistsEntity( const VFS_String&amp; strPath );
VFS_BOOL VFS_GetEntityInfo( const VFS_String&amp; strPath, VFS_EntityInfo&amp; Info );
VFS_WORD VFS_GetVersion();

// Error Handling.
VFS_ErrorCode VFS_GetLastError();
VFS_PCSTR VFS_GetErrorString( VFS_ErrorCode eError );

///////////////////////////////////////////////////////////////////////////////
// The File Interface (the file interface will try to create a file in each root path. If no root path has been added, the current directory will be used instead. You can't manipulate Archive Files.).
///////////////////////////////////////////////////////////////////////////////
// Create / Open / Close a File.
VFS_Handle VFS_File_Create( const VFS_String&amp; strFileName, VFS_DWORD dwFlags );
VFS_Handle VFS_File_Open( const VFS_String&amp; strFileName, VFS_DWORD dwFlags );
VFS_BOOL VFS_File_Close( VFS_Handle hFile );

// Read / Write from / to the File.
VFS_BOOL VFS_File_Read( VFS_Handle hFile, VFS_BYTE* pBuffer, VFS_DWORD dwToRead, VFS_DWORD* pRead = NULL );
VFS_BOOL VFS_File_Write( VFS_Handle hFile, const VFS_BYTE* pBuffer, VFS_DWORD dwToWrite, VFS_DWORD* pWritten = NULL );

// Direct File Reading / Writing.
VFS_BOOL VFS_File_ReadEntireFile( const VFS_String&amp; strFileName, VFS_BYTE* pBuffer, VFS_DWORD dwToRead = VFS_INVALID_DWORD_VALUE, VFS_DWORD* pRead = NULL );
VFS_BOOL VFS_File_WriteEntireFile( const VFS_String&amp; strFileName, const VFS_BYTE* pBuffer, VFS_DWORD dwToWrite, VFS_DWORD* pWritten = NULL );

// Positioning.
VFS_BOOL VFS_File_Seek( VFS_Handle hFile, VFS_LONG lPosition, VFS_SeekOrigin eOrigin = VFS_SET );
VFS_LONG VFS_File_Tell( VFS_Handle hFile );

// Sizing.
VFS_BOOL VFS_File_Resize( VFS_Handle hFile, VFS_LONG lSize );
VFS_LONG VFS_File_GetSize( VFS_Handle hFile );

// Information.
VFS_BOOL VFS_File_Exists( const VFS_String&amp; strFileName );
VFS_BOOL VFS_File_GetInfo( const VFS_String&amp; strFileName, VFS_EntityInfo&amp; Info );
VFS_BOOL VFS_File_GetInfo( VFS_Handle hFile, VFS_EntityInfo&amp; Info );

// File Management.
VFS_BOOL VFS_File_Delete( const VFS_String&amp; strFileName );
VFS_BOOL VFS_File_Copy( const VFS_String&amp; strFrom, const VFS_String&amp; strTo );
VFS_BOOL VFS_File_Move( const VFS_String&amp; strFrom, const VFS_String&amp; strTo );
VFS_BOOL VFS_File_Rename( const VFS_String&amp; strFrom, const VFS_String&amp; strTo );				// pszTo has to be a single File Name without a Path.

///////////////////////////////////////////////////////////////////////////////
// The Archive Interface (Never provide a extension for the archive, instead, change the VFS_ARCHIVE_EXTENSION definition and recompile; You can only create archives in the first root path. You can't manipulate Archives. Each entry VFS_FileNameMap consists of the source file name and the file name in the archive, for instance &quot;alpha/beta/gamma.txt&quot; =&gt; &quot;abg.txt&quot;).
///////////////////////////////////////////////////////////////////////////////
// Create an Archive.
VFS_BOOL VFS_Archive_CreateFromDirectory( const VFS_String&amp; strArchiveFileName, const VFS_String&amp; strDirName, const VFS_FilterNameList&amp; UsedFilters = VFS_FilterNameList(), VFS_BOOL bRecursive = VFS_TRUE );
VFS_BOOL VFS_Archive_CreateFromFileList( const VFS_String&amp; strArchiveFileName, const VFS_FileNameMap&amp; Files, const VFS_FilterNameList&amp; UsedFilters = VFS_FilterNameList() );

// Extract an Archive / File.
VFS_BOOL VFS_Archive_Extract( const VFS_String&amp; strArchiveFileName, const VFS_String&amp; strTargetDir );
VFS_BOOL VFS_Archive_ExtractFile( const VFS_String&amp; strArchiveFileName, const VFS_String&amp; strFile, const VFS_String&amp; strTargetFile );

// Information.
VFS_BOOL VFS_Archive_Exists( const VFS_String&amp; strArchiveFileName );
VFS_BOOL VFS_Archive_GetInfo( const VFS_String&amp; strArchiveFileName, VFS_EntityInfo&amp; Info );
VFS_BOOL VFS_Archive_GetUsedFilters( const VFS_String&amp; strArchiveFileName, VFS_FilterNameList&amp; FilterNames );

// Archive Management.
VFS_BOOL VFS_Archive_Delete( const VFS_String&amp; strArchiveFileName );

// Flush the Archive System.
VFS_BOOL VFS_Archive_Flush();

///////////////////////////////////////////////////////////////////////////////
// The Directory Interface (You can only create/delete standard directories in the first root path. You can't manipulate Dirs in Archives).
///////////////////////////////////////////////////////////////////////////////
// Directory Management.
VFS_BOOL VFS_Dir_Create( const VFS_String&amp; strDirName, VFS_BOOL bRecursive = VFS_FALSE );	// Recursive mode would create a directory c:\alpha\beta even if alpha doesn't exist.
VFS_BOOL VFS_Dir_Delete( const VFS_String&amp; strDirName, VFS_BOOL bRecursive = VFS_FALSE );	// Recursive mode would delete a directory c:\alpha even if it contains files and/or subdirectories.

// Information.
VFS_BOOL VFS_Dir_Exists( const VFS_String&amp; strDirName );
VFS_BOOL VFS_Dir_GetInfo( const VFS_String&amp; strDirName, VFS_EntityInfo&amp; Info );

// Iterate a Directory and call the iteration procedure for each 
VFS_BOOL VFS_Dir_Iterate( const VFS_String&amp; strDirName, VFS_DirIterationProc pIterationProc, VFS_BOOL bRecursive = VFS_FALSE, void* pParam = NULL );

// Get the Contents of a Directory.
VFS_BOOL VFS_Dir_GetContents( const VFS_String&amp; strDirName, VFS_EntityInfoList&amp; EntityInfoList, VFS_BOOL bRecursive = VFS_FALSE );

///////////////////////////////////////////////////////////////////////////////
// The Utility Interface (You may call the File Name Management Functions even if the VFS isn't initialized yet).
///////////////////////////////////////////////////////////////////////////////
// File Name Management Functions.
VFS_BOOL VFS_Util_GetPath( const VFS_String&amp; strFileName, VFS_String&amp; strPath );
VFS_BOOL VFS_Util_GetName( const VFS_String&amp; strFileName, VFS_String&amp; strName );
VFS_BOOL VFS_Util_GetBaseName( const VFS_String&amp; strFileName, VFS_String&amp; strBaseName );
VFS_BOOL VFS_Util_GetExtension( const VFS_String&amp; strFileName, VFS_String&amp; strExtension );
VFS_BOOL VFS_Util_IsAbsoluteFileName( const VFS_String&amp; strFileName );

//============================================================================
//    INTERFACE OBJECT CLASS DEFINITIONS
//============================================================================
//============================================================================
//    INTERFACE TRAILING HEADERS
//============================================================================

#endif // __VFS_H__
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1608455</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1608455</guid><dc:creator><![CDATA[lib user]]></dc:creator><pubDate>Sat, 01 Nov 2008 11:00:30 GMT</pubDate></item><item><title><![CDATA[Reply to einbinden einer statischen Bibliothek on Sat, 01 Nov 2008 13:29:36 GMT]]></title><description><![CDATA[<p>Du müsstest auch den Quellcode ändern und die *.lib neu erstellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1608535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1608535</guid><dc:creator><![CDATA[Big Brother]]></dc:creator><pubDate>Sat, 01 Nov 2008 13:29:36 GMT</pubDate></item><item><title><![CDATA[Reply to einbinden einer statischen Bibliothek on Sat, 01 Nov 2008 16:24:08 GMT]]></title><description><![CDATA[<p>Big Brother schrieb:</p>
<blockquote>
<p>Du müsstest auch den Quellcode ändern und die *.lib neu erstellen.</p>
</blockquote>
<p>naja gut den Quellcode hab ich ja, wie ist z.B. der Aufruf folgender Teile umzuschreiben:</p>
<pre><code class="language-cpp">typedef std::vector&lt; const class VFS_Filter* &gt; VFS_FilterList;
typedef std::vector&lt; VFS_String &gt; VFS_FilterNameList;
typedef std::vector&lt; VFS_String &gt; VFS_RootPathList;
typedef std::vector&lt; struct VFS_EntityInfo &gt; VFS_EntityInfoList;
typedef std::map&lt; VFS_String, VFS_String &gt; VFS_FileNameMap;
</code></pre>
<p>und</p>
<pre><code class="language-cpp">class VFS_Filter
{
public:
	// Constructor / Destructor.
	VFS_Filter()
	{}
	virtual ~VFS_Filter()
	{}

	// Encoding / Decoding Procedures.
	virtual VFS_BOOL Encode( VFS_FilterReadProc Reader, VFS_FilterWriteProc Writer, const struct VFS_EntityInfo&amp; DecodedInfo ) const = 0;
	virtual VFS_BOOL Decode( VFS_FilterReadProc Reader, VFS_FilterWriteProc Writer, const struct VFS_EntityInfo&amp; EncodedInfo ) const = 0;

	// Filter Configuration Data Management.
	virtual VFS_BOOL LoadConfigData( VFS_FilterReadProc Reader ) = 0;
	virtual VFS_BOOL SaveConfigData( VFS_FilterWriteProc Writer ) const = 0;
	virtual VFS_DWORD GetConfigDataSize() const = 0;

	// Information.
	virtual VFS_PCSTR GetName() const = 0;
	virtual VFS_PCSTR GetDescription() const = 0;
};
</code></pre>
<p>so wie es aussieht sind das die einzigen Teile in dieser Headerdatei die umzuschreiben sind? Die andere Headerdatei ist dann schon etwas komplizierter</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1608625</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1608625</guid><dc:creator><![CDATA[lib user]]></dc:creator><pubDate>Sat, 01 Nov 2008 16:24:08 GMT</pubDate></item><item><title><![CDATA[Reply to einbinden einer statischen Bibliothek on Sat, 01 Nov 2008 18:45:38 GMT]]></title><description><![CDATA[<p>Wozu der Aufwand, benutz doch nen C++ Compiler, dann brauchst du gar nichts umzuschreiben. Oder nimm ne Ansi C lib.</p>
<p>Gruß,<br />
B.B.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1608702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1608702</guid><dc:creator><![CDATA[B.B.]]></dc:creator><pubDate>Sat, 01 Nov 2008 18:45:38 GMT</pubDate></item></channel></rss>