Puedes crear la Dll de esta forma:
//zip.cs
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.IO.Compression;
namespace GZipStreamC
{
public class ZipStream
{
public static string Zip(string text)
{
byte[] buffer = Encoding.UTF8.GetBytes(text);
MemoryStream ms
= new MemoryStream
(); using (GZipStream zip
= new GZipStream
(ms, CompressionMode
.Compress,
true)) {
zip.Write(buffer, 0, buffer.Length);
}
ms.Position = 0;
byte[] compressed
= new byte[ms
.Length]; ms.Read(compressed, 0, compressed.Length);
byte[] gzBuffer
= new byte[compressed
.Length + 4]; System.Buffer.BlockCopy(compressed, 0, gzBuffer, 4, compressed.Length);
System.Buffer.BlockCopy(BitConverter.GetBytes(buffer.Length), 0, gzBuffer, 0, 4);
return Convert.ToBase64String(gzBuffer);
}
public static string UnZip(string compressedText)
{
byte[] gzBuffer = Convert.FromBase64String(compressedText);
using (MemoryStream ms
= new MemoryStream
()) {
int msgLength = BitConverter.ToInt32(gzBuffer, 0);
ms.Write(gzBuffer, 4, gzBuffer.Length - 4);
byte[] buffer
= new byte[msgLength
]; ms.Position = 0;
using (GZipStream zip
= new GZipStream
(ms, CompressionMode
.Decompress)) {
zip.Read(buffer, 0, buffer.Length);
}
return Encoding.UTF8.GetString(buffer);
}
}
}
}
Si utilizas versiones express, para compilarlo necesitas tener instalado el VC++ 9 (Símbolo del sistema de Visual Studio ....) y la haces con la siguiente linea:
csc /target:library /out:zip.DLL zip.cs
Puedes añadir más parametros deacuerdo a tus necesidades.
De todas formas te doy el enlace a la dll que necesitas:
http://www.4shared.com/file/sI775UnO/zip.htmlPero lo mejor es que modifiques el code para prevenir posibles errores.
Lo utilizas de la sgte forma:
Imports GZipStreamC.ZipStream
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox1.Text = Zip(TextBox1.Text)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
TextBox1.Text = UnZip(TextBox1.Text)
End Sub
End Class
Antes necesitas hacer una referencia a zip.dll
Es solo un ejemplo sencillo, solo para probar como funciona.