Hi Eric, I downloaded the latest beta version dll sources from your website and managed to get them build in BCB5 The dll's seem to be working now after some adaptation of the source files, since I only have BCB5 to test with I tried to have all changes under a Borland flag __BROLANDC__. Sorry for the long post but I prefer to give all findings at once. So far I only tested composition of an archive and retrieval of files all seemed to be OK Hope this helped, Roger. ---------------------------------------------------------------------- Compiling zipddl ---------------- 1- the compiler complained about the function setftime to be re-defined, it is already defined in "io.h" but with another signature; I renamed the function to Setftime - capital s- 2- Linker Error _TgbIndex defined in both ZipDll.c and Globals.c In Globals.c definition changed to -> extern DWORD TgbIndex; 3- Warnings about structure change in Wizzip.h Before typedef struct for callbackstruct added #pragma pack(1) to have it byte aligned as requested in comments and after ZCL2 add pragma pack() to set alignment to default again Compiling Unzipddl ---------------- 1- Error: could not find <sys/utime.h> inn doscfg.h and win32cfgf.h; For BCB5 this file is in "Include" directory and not in sys. Added: #ifdef __BORLANDC__ #include <utime.h> #else #include <sys/utime.h> #endif Testing Zipddl ------------------- 1-Error can not find ZipDllExec in ZipDll.dll-> In wizzip.h export of functions was put in comment Added: #ifdef __BORLANDC__ extern __stdcall __declspec( dllexport ) long GetZipDllVersion( void ); extern __stdcall __declspec( dllexport ) long GetZipDllPrivVersion( void ); extern __stdcall __declspec( dllexport ) long ZipDllExec( ZCL *C ); #endif 2- AV during execution of Add(). In Dllmain in function user_callback after returning from user program. Reason In Wizzip.h we have typedef unsigned long (*DLLCALLBK) (callbackstruct *); That has to be a __stdcall for BCB Solution added: #ifdef __BORLANDC__ typedef unsigned long __stdcall (*DLLCALLBK) (callbackstruct *); #else typedef unsigned long (*DLLCALLBK) (callbackstruct *); #endif Testing Unzipdll ----------------------- 1-Error can not find UnzDllExec in UnzDll.dll ->In WizUnzip.h export of functions was put in comment Added: #ifdef __BOLANDC__ extern __stdcall __declspec(dllexport) long GetUnzDllVersion( void ); extern __stdcall __declspec(dllexport) long GetUnzDllPrivVersion( void ); extern __stdcall __declspec(dllexport) long UnzDllExec( DCL1 *C ); #endif 2- typedef of DLLCALLBK will give same problem as in zipdll. added: #ifdef __BORLANDC__ typedef unsigned long __stdcall (*DLLCALLBK) (CallBackStruct *); #else typedef unsigned long (*DLLCALLBK) (callbackstruct *); #endif Remarks for Unzipdll - found during browsing over files- not real errors ------------------------ 1- All pragma's are put in comment in WizUnzip.h; Would this not result in wrong alignment? added : #pragma pack(1) before start of typedef struct for DCL1 #pragma pack() at end of struct DCL2 #pragma pack(1) before typedef struct for Callbackstruct and close with #pragma pack() 2- fileGlobals.h all #ifdef USE_STRM_INPUT are put in comment, but in zipdll these statements are still valid should both dll's not be build with same defines? 3-At the end of globals.h there are twe statements #ifndef USE_STRM_INPUT #define USE_STRM_INPUT #endif At least one of them is excesive For BCB I should prefer to have this statement surrounded such as #ifdef __BORLANDC__ #ifndef USE_STRM_INPUT #define USE_STRM_INPUT #endif #endif and have the definition of all defines in the project file *.bpr -- Roger Aelbrecht http://web.wanadoo.be/driehoeksw