1

VS2010でコンパイルされている実行可能ファイルに直接ZLIBをコンパイルしています-64ビットで、この単純なプログラムは常にハングします、何かアイデアはありますか? 以下の詳細情報:

コール スタック:

zlibtest.exe!inflate(z_stream_s * strm, int flush) 607行目    

zlibtest.exe!uncompress(unsigned char * dest, unsigned long * destLen, const unsigned char * source, unsigned long sourceLen) 44行目

zlibtest.exe!main(int argc, char * * argv) 137行目

ここにぶら下がっています:

for (;;)
    switch (state->mode) {
    case HEAD:
        if (state->wrap == 0) {
            state->mode = TYPEDO;
            break;
        }
        **NEEDBITS(16);**

プログラム:

#include "zlib.h"

int main( int argc, char * argv[] )
{
    char * buffer = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
    ULONG buffer_size = strlen( buffer ) + 1;

    ULONG compressed_size = compressBound( buffer_size );
    BYTE * compressed_buffer = new BYTE[ compressed_size ];

    if ( Z_OK != compress2( compressed_buffer, &compressed_size, ( Bytef * ) buffer, buffer_size, Z_DEFAULT_COMPRESSION ) )
        printf( "Failed to compress." );

    ULONG uncompressed_size = buffer_size;
    BYTE * uncompressed_buffer = new BYTE[ uncompressed_size ];

    if ( Z_OK != uncompress( uncompressed_buffer, &uncompressed_size, compressed_buffer, compressed_size ) )
        printf( "Failed to uncompress" );

    printf( "Press <ENTER> to exit..." );
    std::cin.ignore();
}
4

0 に答える 0