使用本机压缩 API 和 Windows.Storage.Compression

Using native compression API and Windows.Storage.Compression

我正在尝试在托管和非托管代码中使用 windows 压缩 API – 使用 C++ 服务压缩并使用 C# 控制台应用程序解压缩。

  1. 我试过用c++写的windows压缩API压缩,用c#解码Windows.Storage.Compression library。 解压失败,因为它不是预期的格式。 我从这里获取了压缩代码:Compression sample.
    有没有办法让它工作?

  2. 否则,我也可以在 C++ 服务中使用 Windows.Storage.Compression 库。我在 C++ 控制台应用程序中编译它。 问题是,c++ 代码应该是 windows 服务的一部分, 而这个库是一个winRT库。在服务中使用 winRT 库是否有任何限制?

  3. 否则,我想我需要在本机 C++ 服务和 C# 应用程序中使用本机 Windows 压缩 API。 在 C# 中,我必须为此使用 P/Invoke。这是我唯一的选择吗?

解决方法是:

在 C++ 方面:

buffer mode 中使用压缩 API 而不是块模式压缩

在 C# 方面:

使用 Windows.Storage.Compression 库解压 (sample)