如何使用 LZO 压缩和解压缩字符串?

How to compress and decompress a string with LZO?

试图弄清楚插入我的数据的正确方法是什么。有什么帮助吗?以此处看到的方式执行此操作会导致没有强制转换的整数。我已经尝试了几种方法,但从来没有完全掌握它。

lzo_bytep SERV_DATA_SEND = "702D31FA78809907133F1256459ABFECA9769AEAB65F3F125658";

in_len = IN_LEN;
lzo_memset(in,SERV_DATA_SEND,strlen(SERV_DATA_SEND));
printf("memset: %s\n\n", in);

要在缓冲区中准备数据,您应该使用 lzo_memcpy(in, SERV_DATA_SEND, strlen(SERV_DATA_SEND)),它的第二个参数接受字符。

pub unsafe extern "C" fn lzo_memcpy(
    dst: *mut c_void, 
    src: *const c_void, 
    len: lzo_uint
) -> *mut c_void

lzo_memset()中,第二个参数接受一个整数。

pub unsafe extern "C" fn lzo_memset(
    buf: *mut c_void, 
    c: c_int, 
    len: lzo_uint
) -> *mut c_void

例如,如果要清除缓冲区,可以使用下面的代码。它会将所有块设置为零。

lzo_memset(in,0,in_len);

查看 http://www.oberhumer.com/opensource/lzo/#download

中的 overlap.c 和 simple.c 示例