Нашел на форуме след. программу Код (Text): int _tmain(int argc, _TCHAR* argv[]) { if (argc > 2) { OFSTRUCT ofs_in = {0}; OFSTRUCT ofs_out = {0}; INT hSrcFile = 0, hDstFile = 0; DWORD ec = 0; hSrcFile = LZOpenFile(argv[1], &ofs_in, OF_READ); ec = GetLastError(); if (hSrcFile >= 0) { hDstFile = LZOpenFile(argv[2], &ofs_out, OF_WRITE); ec = GetLastError(); if(hDstFile >= 0) { ec = LZCopy(hDstFile, hSrcFile); switch(ec) { case LZERROR_BADINHANDLE: printf("The handle identifying the source file is not valid. The file cannot be read.\n"); break; case LZERROR_BADOUTHANDLE: printf("The handle identifying the destination file is not valid. The file cannot be written.\n"); break; case LZERROR_GLOBALLOC: printf("The maximum number of open compressed files has been exceeded or local memory cannot be allocated.\n"); break; case LZERROR_GLOBLOCK: printf("The LZ file handle cannot be locked down.\n"); break; case LZERROR_READ: printf("The source file format is not valid.\n"); break; default: printf("ec = %X\n", ec); } LZClose(hDstFile); } LZClose(hSrcFile); } } } Объясните, как с помощью него распаковывать архивы, пожалуйста?
Там есть ошибки: Вместо - hDstFile = LZOpenFile(argv[2], &ofs_out, OF_WRITE); Надо - hDstFile = LZOpenFile(argv[2], &ofs_out, OF_WRITE | OF_CREATE); Вместо - ec = LZCopy(hDstFile, hSrcFile); Надо - ec = LZCopy(hSrcFile, hDstFile);
Я уже писал, что нужно передать имена файлов в командную строку. Например твоя собранная прога - proga.exe. Сжатый файл - 1.txt. Набирай в консоли - proga.exe 1.txt 2.txt
так и сделал, но архив не распаковывается архив создавал с помощью compress.exe из unixtools а у вас работает?