找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 303|回复: 16

请问压缩数据()和解压数据(),炫语言有官方命令吗?

[复制链接]

32

主题

146

回帖

764

积分

高级会员

积分
764
发表于 2024-9-17 19:37:31 | 显示全部楼层 |阅读模式
悬赏1金钱已解决
本帖最后由 呵呵仙 于 2024-9-17 19:41 编辑

请问压缩数据()解压数据(),炫语言有官方命令吗?这个命令在易语言经常用的,炫语言没有不应该吧!
问了下百度AI.嵌入代码后报错了!!不知如何搞!?




#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <zlib.h>

int compress(Bytef *data, uLong ndata, Bytef *zdata, uLong *nzdata) {
    int err;
    z_stream c_stream;
    printf("Compressing:\n");
    c_stream.zalloc = NULL;
    c_stream.zfree = NULL;
    c_stream.opaque = NULL;
    if (deflateInit(&c_stream, Z_DEFAULT_COMPRESSION) != Z_OK) return -1;
    c_stream.next_in = data;
    c_stream.avail_in = ndata;
    c_stream.next_out = zdata;
    c_stream.avail_out = *nzdata;
    while (c_stream.avail_in != 0 && c_stream.total_out < *nzdata) {
        err = deflate(&c_stream, Z_NO_FLUSH);
        if (err != Z_OK) return -1;
    }
    if (err != Z_STREAM_END) return -1;
    err = deflateEnd(&c_stream);
    if (err != Z_OK) return -1;
    *nzdata = c_stream.total_out;
    printf("Compressed %ld bytes to %ld bytes\n", ndata, *nzdata);
    return 0;
}

int decompress(Byte *zdata, uLong nzdata, Byte *data, uLong *ndata) {
    int err;
    z_stream d_stream; /* decompression stream */
    printf("Decompressing:\n");
    d_stream.zalloc = NULL;
    d_stream.zfree = NULL;
    d_stream.opaque = NULL;
    d_stream.next_in = zdata;
    d_stream.avail_in = 0;
    d_stream.next_out = data;
    if ((err = inflateInit(&d_stream)) != Z_OK) return err;
    while (d_stream.total_out < *ndata && d_stream.total_in < nzdata) {
        d_stream.avail_in = d_stream.avail_out = 1;
        if ((err = inflate(&d_stream, Z_NO_FLUSH)) == Z_STREAM_END) break;
        if (err != Z_OK) return err;
    }
    if (err != Z_STREAM_END) return err;
    err = inflateEnd(&d_stream);
    if (err != Z_OK) return err;
    *ndata = d_stream.total_out;
    printf("Decompressed %ld bytes to %ld bytes\n", nzdata, *ndata);
    return 0;
}

int main() {
    char *original = "Hello, this is a test string for compression!";
    unsigned long original_length = strlen(original);
    unsigned long compressed_length = original_length + (original_length / 10) + 12;
    char *compressed = (char *)malloc(compressed_length);
    char *decompressed = (char *)malloc(original_length);

    compress((Bytef*)original, original_length, (Bytef*)compressed, &compressed_length);
    decompress((Byte*)compressed, compressed_length, (Byte*)decompressed, &original_length);

    printf("Original: %s\n", original);
    printf("Decompressed: %s\n", decompressed);

    free(compressed);
    free(decompressed);

    return 0;
}

最佳答案

查看完整内容

压缩解压模块已上传

55

主题

77

回帖

566

积分

版主

积分
566
发表于 2024-9-17 19:37:32 | 显示全部楼层
压缩解压模块已上传

32

主题

146

回帖

764

积分

高级会员

积分
764
 楼主| 发表于 2024-9-20 00:18:07 | 显示全部楼层
hxznhf 发表于 2024-9-19 00:15
压缩解压模块已上传

模块安装失败.现在只好先用以下这个方法了!
https://bbs.125.la/forum.php?mod ... rtype=1#pid28938733

55

主题

77

回帖

566

积分

版主

积分
566
发表于 2024-9-20 15:19:30 | 显示全部楼层
呵呵仙 发表于 2024-9-20 00:18
模块安装失败.现在只好先用以下这个方法了!
https://bbs.125.la/forum.php?mod=viewthread&tid=14835104& ...

模式上传有问题,现在可以下载了

32

主题

146

回帖

764

积分

高级会员

积分
764
 楼主| 发表于 2024-9-20 20:45:33 | 显示全部楼层
hxznhf 发表于 2024-9-20 15:19
模式上传有问题,现在可以下载了

谢谢,调用会报错
main__.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall 压缩解压::压缩解压(void)" (??0压缩解压@@QAE@XZ),该符号在函数 "void __cdecl `dynamic initializer for 'CH_压缩解压''(void)" (??__ECH_压缩解压@@YAXXZ) 中被引用
main__.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall 压缩解压::~压缩解压(void)" (??1压缩解压@@QAE@XZ),该符号在函数 "void __cdecl `dynamic atexit destructor for 'CH_压缩解压''(void)" (??__FCH_压缩解压@@YAXXZ) 中被引用
E:\Program Files\炫彩IDE-3.3.8.1-(2023-11-16)\MyProject\压缩数据\Debug\压缩数据.exe : fatal 错误 LNK1120: 2 个无法解析的外部命令
*编译失败, 错误码: 1120

55

主题

77

回帖

566

积分

版主

积分
566
发表于 2024-9-20 21:22:08 | 显示全部楼层
本帖最后由 hxznhf 于 2024-9-20 21:25 编辑
呵呵仙 发表于 2024-9-20 20:45
谢谢,调用会报错
main__.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall 压缩解压::压缩 ...

啊,怎么回事啊,我晚点看看,在忙

32

主题

146

回帖

764

积分

高级会员

积分
764
 楼主| 发表于 2024-9-20 21:32:11 | 显示全部楼层
hxznhf 发表于 2024-9-20 21:22
啊,怎么回事啊,我晚点看看,在忙

你这里没报吗?

55

主题

77

回帖

566

积分

版主

积分
566
发表于 2024-9-20 21:42:16 | 显示全部楼层

重新下载看看,构造函数没定义,但我这里确实没报错

32

主题

146

回帖

764

积分

高级会员

积分
764
 楼主| 发表于 2024-9-20 21:53:12 | 显示全部楼层
hxznhf 发表于 2024-9-20 21:42
重新下载看看,构造函数没定义,但我这里确实没报错



要带DLL发布吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

55

主题

77

回帖

566

积分

版主

积分
566
发表于 2024-9-21 12:10:26 | 显示全部楼层

dll忘记传了,本来打算编译静态版本,但是现在发现静态问题比较多,不同VC版本静态库之间没法完全兼容,看来除了带dll,只有源代码编译兼容性最好了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|炫语言 | 炫彩界面库 | 用户所需, 正是我所做! ( 鄂ICP备2023014763号-1 )

GMT+8, 2024-12-4 01:18 , Processed in 0.074042 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表