开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 949|回复: 1
收起左侧

[求助] 求将此段C++代码转换为易语言代码

[复制链接]
结帖率:100% (1/1)
发表于 2022-10-5 11:55:25 | 显示全部楼层 |阅读模式   云南省昆明市
我用VS2019编译为DLL,易怎么都调不出来,总是找不到DLL函数,求将此段代码转为易代码,感谢!
读入文件使用TEA加密解密后写出


#include <stdio.h>
#include<malloc.h>

unsigned long DELTA = 0x9e3779b9;
#define MX (z>>5^y<<2) + (y>>3^z<<4)^(sum^y) + (k[p&3^e]^z);
long TEAencode(long* v, long n, long* k)
{
        unsigned long z, y, sum, e;
        z = v[n - 1];
        y = v[0];
        sum = 0;
        long p, q;
        q = 6 + 52 / n;
        while (q-- > 0)
        {
                sum += DELTA;
                e = (sum >> 2) & 3;
                for (p = 0; p < n - 1; p++)
                        y = v[p + 1], z = v[p] += MX;
                y = v[0];
                z = v[n - 1] += MX;
        }
        return 0;
}

long TEAdecode(long* v, long n, long* k)
{
        unsigned long z, y, sum, e;
        z = v[n - 1];
        y = v[0];
        sum = 0;
        long p, q;
        q = 6 + 52 / n;
        sum = q * DELTA;
        while (sum != 0)
        {
                e = (sum >> 2) & 3;
                for (p = n - 1; p > 0; p--)
                        z = v[p - 1], y = v[p] -= MX;
                z = v[n - 1]; y = v[0] -= MX;
                sum -= DELTA;
        }
        return 0;
}

int getfilesize(FILE* fp)
{
        if (fp == NULL) return 0;
        int size;
        fseek(fp, 0, SEEK_END);
        size = ftell(fp);
        fseek(fp, 0, SEEK_SET);
        return size;
}
typedef struct {
        char MD5[64];
        char* DATA;
}shopA;

void decode(char* filename, shopA* shop, long* key)
{
        FILE* fp;
        fopen_s(&fp, filename, "wb");
        if (fp == NULL)
        {
                shop->MD5[0] = NULL;
                shop->DATA = NULL;
                return;
        }
        int size = getfilesize(fp);
        char* temp = (char*)malloc(size);
        fread(temp, 1, size, fp);
        shop->DATA = (char*)malloc(size - 34 + 1);
        memset(shop->DATA, 0, size - 34 + 1);
        memset(shop->MD5, 0, 64);
        memcpy_s(shop->MD5, 34, temp, 34);
        memcpy_s(shop->DATA, size - 34, temp + 34, size - 34);
        TEAdecode((long*)shop->DATA, ((size - 34) / 4), (long*)key);
        fwrite(shop->DATA, size + 34, 1, fp);
        free(temp);
        fclose(fp);
}

void encode(char* filename, shopA* shop, long* key)
{
        FILE* fp;
        fopen_s(&fp, filename, "wb");
        int length = strlen(shop->DATA);
        int length1 = length % 4 ? length + (4 - length % 4) : length;
        char* temp = (char*)malloc(34 + length1);
        memset(temp, 0, 34 + length1);
        memcpy_s(temp, 34, shop->MD5, 34);
        memcpy_s((temp + 34), length, shop->DATA, length);
        TEAencode((long*)(temp + 34), (long)(length1 / 4), (long*)key);
        fwrite(temp, length1 + 34, 1, fp);
        free(temp);
        fclose(fp);
}

dllmain.txt

2.54 KB, 下载次数: 2, 下载积分: 精币 -2 枚

结帖率:0% (0/1)
发表于 2022-10-5 20:59:03 高大上手机用户 | 显示全部楼层   广东省佛山市
我觉得你应该去定制区好一点
回复 支持 反对

使用道具 举报

  高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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