Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
boost::iostreams中的Zlib压缩与Zlib.NET不兼容 我想用ZLIB格式把压缩数据发送到C++应用程序中。在C++中,我使用在Boosi::IoSoots中可用的ZLYbYask/ZLBBI解压缩器。在C#中,我目前正在使用zlib.NET库中提供的ZOutputStream。首先,当我使用两个库压缩相同的数据时,结果看起来不同: boost::iostreams::zlib_压缩器:_C#_Compatibility_Zlib_Boost Iostreams - Fatal编程技术网

boost::iostreams中的Zlib压缩与Zlib.NET不兼容 我想用ZLIB格式把压缩数据发送到C++应用程序中。在C++中,我使用在Boosi::IoSoots中可用的ZLYbYask/ZLBBI解压缩器。在C#中,我目前正在使用zlib.NET库中提供的ZOutputStream。首先,当我使用两个库压缩相同的数据时,结果看起来不同: boost::iostreams::zlib_压缩器:

boost::iostreams中的Zlib压缩与Zlib.NET不兼容 我想用ZLIB格式把压缩数据发送到C++应用程序中。在C++中,我使用在Boosi::IoSoots中可用的ZLYbYask/ZLBBI解压缩器。在C#中,我目前正在使用zlib.NET库中提供的ZOutputStream。首先,当我使用两个库压缩相同的数据时,结果看起来不同: boost::iostreams::zlib_压缩器:,c#,compatibility,zlib,boost-iostreams,C#,Compatibility,Zlib,Boost Iostreams,63 61 60 60 F8 00 C4 C1 25 45 99 79 E9 23 87 04 00 zlib.NET(zlib.ZOutputStream): 78 9C 63 61 60 60 F8 00 C4 C1 25 45 99 79 E9 23 87 04 00 4F 31 63 8D (注意zlib.NET中存在的78 9C模式,但boost中没有) 此外,当我在boost中解压我在zlib.NET中压缩的数据时,我无法从流中读取数据,这表明有问题。当我尝试解压缩boost中压缩的

63 61 60 60 F8 00 C4 C1 25 45 99 79 E9 23 87 04 00

  • zlib.NET(zlib.ZOutputStream):
  • 78 9C 63 61 60 60 F8 00 C4 C1 25 45 99 79 E9 23 87 04 00 4F 31 63 8D

    (注意zlib.NET中存在的78 9C模式,但boost中没有)

    此外,当我在boost中解压我在zlib.NET中压缩的数据时,我无法从流中读取数据,这表明有问题。当我尝试解压缩boost中压缩的数据时,它确实起作用

    有人知道出了什么问题吗

    谢谢,


    Johan

    这是因为boost::iostreams::zlib_压缩程序代码正在生成原始的压缩数据,而zlib.NET正在添加页眉和页脚,以便数据采用压缩格式

    证据,考虑TCL会话的日志:

    % set s {78 9C 63 61 60 60 F8 00 C4 C1 25 45 99 79 E9 23 87 04 00 4F 31 63 8D}
    78 9C 63 61 60 60 F8 00 C4 C1 25 45 99 79 E9 23 87 04 00 4F 31 63 8D
    % set b [binary format H* [join $s ""]];string length $b
    23
    % zlib decompress $b
    ðStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringString
    % zlib inflate $b
    data error
    % set s {63 61 60 60 F8 00 C4 C1 25 45 99 79 E9 23 87 04 00}
    63 61 60 60 F8 00 C4 C1 25 45 99 79 E9 23 87 04 00
    % set b [binary format H* [join $s ""]];string length $b
    17
    % zlib decompress $b
    data error
    % zlib inflate $b
    ðStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringStringString
    

    (zlib decompress命令以“compress”格式扩展数据,
    zlib-inflate命令以“raw-deflated”格式扩展数据。)

    同样奇怪的是,boost库在默认情况下似乎不遗余力地将非原始格式放在够不着的地方,鉴于底层库对它们的支持很好。我想这一定是某种哲学上的东西。谢谢,帮了大忙。结果证明我无意中通过了Nou header选项来提升。。。啊!