2011-07-15 34 views
1

有人可以幫助我從端口 void * uzFile = unzOpen("zip filename");如何使用unzOpenCurrentFilePassword?

我的代碼從minizip使用unzOpenCurrentFilePassword? 我想用密碼保護我的zip文件。

我嘗試了很多次,但我沒有使用它。由於

extern int ZEXPORT unzOpenCurrentFilePassword OF((unzFile file, const char* password)); /* Open for reading data the current file in the zipfile. password is a crypting password If there is no error, the return value is UNZ_OK. */

回答

8

之前你編譯zlib的,除去NOUNCRYPT的定義unzip.c。然後「unzOpenCurrentFilePassword將被啓用」。

unzip.c 72號線:

#ifndef NOUNCRYPT 
    //#define NOUNCRYPT Comment this line, so unzip protected files will be enabled 
#endif 

爲什麼?除此之外,NOUNCRYPT的定義在unzOpenCurrentFilePassword函數中導致荒謬的返回。

extern int ZEXPORT unzOpenCurrentFile3 (unzFile file, int* method, 
             int* level, int raw, const char* password) 
[...] 

# ifndef NOUNCRYPT 
    char source[12]; 
# else 
    if (password != NULL) 
     return UNZ_PARAMERROR; 
# endif