请问压缩数据()和解压数据(),炫语言有官方命令吗?
本帖最后由 呵呵仙 于 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;
}
压缩解压模块已上传 hxznhf 发表于 2024-9-19 00:15
压缩解压模块已上传
模块安装失败.现在只好先用以下这个方法了!
https://bbs.125.la/forum.php?mod=viewthread&tid=14835104&page=1&ordertype=1#pid28938733 呵呵仙 发表于 2024-9-20 00:18
模块安装失败.现在只好先用以下这个方法了!
https://bbs.125.la/forum.php?mod=viewthread&tid=14835104& ...
模式上传有问题,现在可以下载了 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 本帖最后由 hxznhf 于 2024-9-20 21:25 编辑
呵呵仙 发表于 2024-9-20 20:45
谢谢,调用会报错
main__.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall 压缩解压::压缩 ...
啊,怎么回事啊:@,我晚点看看,在忙 hxznhf 发表于 2024-9-20 21:22
啊,怎么回事啊,我晚点看看,在忙
你这里没报吗? 呵呵仙 发表于 2024-9-20 21:32
你这里没报吗?
重新下载看看,构造函数没定义,但我这里确实没报错 hxznhf 发表于 2024-9-20 21:42
重新下载看看,构造函数没定义,但我这里确实没报错
要带DLL发布吗?
呵呵仙 发表于 2024-9-20 21:53
要带DLL发布吗?
dll忘记传了,本来打算编译静态版本,但是现在发现静态问题比较多,不同VC版本静态库之间没法完全兼容,看来除了带dll,只有源代码编译兼容性最好了。
页:
[1]
2