开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 1233|回复: 17
收起左侧

[求助] c++ 代码翻译成E

[复制链接]
结帖率:84% (102/122)
发表于 2022-6-21 22:23:11 | 显示全部楼层 |阅读模式   浙江省嘉兴市
using namespace jxInterSrvComm::DbServerProto;

const char sGlobalVarFile[] = "./data/runtime/globalVar_";

CGlobalVarMgr::CGlobalVarMgr()
{
        m_boInited = false;
        m_hasModify =false;

        //Load();
}

CGlobalVarMgr::~CGlobalVarMgr()
{
        Destroy();
}

VOID CGlobalVarMgr::Load()
{
        //CDataClient* pDbClient = GetLogicServer()->GetDbClient();
        //if (!m_boInited && pDbClient->connected())
        //{
        //        CDataPacket& DataPacket =pDbClient->allocProtoPacket(dcLoadVar);
        //        DataPacket << (int)0;
        //        GetLogicServer()->GetDbClient()->flushProtoPacket(DataPacket);
        //}

        ///改成读本地文件
        char sFile[256];
        sprintf_s(sFile,sizeof(sFile),"%s%d.bin",sGlobalVarFile,GetLogicServer()->GetServerIndex());
        wylib::stream::CMemoryStream ms;
        if ( ms.loadFromFile(sFile) > 0 )
        {
                m_Var.loadFromMemory((char*)ms.getMemory(),(size_t)ms.getSize());
        }
        m_boInited = true;
}

void CGlobalVarMgr::OnDbRetData( INT_PTR nCmd,INT_PTR nErrorCode,CDataPacketReader &reader )
{
        if(nCmd == dcLoadVar )
        {
                if (nErrorCode == reSucc)
                {
                        m_Var.loadFromMemory(reader.getOffsetPtr(), reader.getAvaliableLength());
                        m_boInited = true;
                }
                else
                {
                        OutputMsg(rmError,_T("load globalVar error!errcode=%d"),nErrorCode);
                        m_boInited = false;
                }
        }
}

VOID CGlobalVarMgr::RunOne()
{       
        TICKCOUNT nCurr = _getTickCount();
        if (m_timer.CheckAndSet(nCurr))
        {               
                Save();
        }
}

void CGlobalVarMgr::Save()
{
        if(!m_hasModify || !m_boInited ) return;
        DECLARE_FUN_TIME_PROF()

        char* buf = NULL;
        size_t buf_size = 0;
        CMyBufferAllocator* alloc = GetLogicServer()->GetBuffAllocator();
       
#ifdef _USE_TRY_CATCH
        __try
#endif
        {       
                ///改成保存到文件
                char sFile[256];
                sprintf_s(sFile,sizeof(sFile),"%s%d.bin",sGlobalVarFile,GetLogicServer()->GetServerIndex());
                CCLVariant *pContinueVar = &m_Var;                                       
                const int ADDSIZE = 1048576; //每次增长1兆空间
                size_t data_size = 0;
                buf = (char*)alloc->_alloc_buffer(ADDSIZE); //预留4K空间
                if (!buf) return;

                buf_size = ADDSIZE;
                size_t savesize = 0;
                int nLoopIndex = 0;
                while (true)
                {
                        savesize = pContinueVar->saveToMemory(buf + data_size, buf_size - data_size, &pContinueVar);
                        data_size += savesize;
                        if (!pContinueVar)
                                break; // 到最后了

                        OutputMsg(rmWaning, _T("GLOBAL VAL  the var data too large, buf size >= %d"), buf_size);

                        //这里修改了一处死循环,问题是大小大于4096将无法申请空间
                        char* new_buf = (char*)alloc->_realloc_buffer(buf, buf_size + ADDSIZE); //每次增长4K
                        if (!new_buf)
                        {
                                alloc->_free_buffer(buf);
                                buf = NULL;
                                break;
                        }                       

                        buf = new_buf;
                        buf_size += ADDSIZE;
                        nLoopIndex++;
                        if(nLoopIndex > 10000)
                        {
                                OutputMsg(rmError,"LoopIndex  CGlobalVarMgr::Save()");
                                break;
                        }
                }

                if (buf && data_size > 0)
                {
                        wylib::stream::CMemoryStream ms;
                        ms.write(buf, data_size);
                        ms.saveToFile(sFile);
                }
        }

#ifdef _USE_TRY_CATCH
        __except(CustomExceptHandler(GetExceptionInformation()))
        {
        }       
#endif

        m_hasModify =false;

        if (buf)
                alloc->_free_buffer(buf);
}
这个是c++ 读取本地的bin类型文件。哪位大神可以翻译成易语言的! globalVar_1.zip (2.69 KB, 下载次数: 2)
结帖率:84% (102/122)

签到天数: 24 天

 楼主| 发表于 2022-6-21 22:29:14 | 显示全部楼层   浙江省嘉兴市
大佬在哪里
回复 支持 反对

使用道具 举报

结帖率:84% (102/122)

签到天数: 24 天

 楼主| 发表于 2022-6-21 22:29:50 | 显示全部楼层   浙江省嘉兴市
我想编辑这个bin类型的文件 c++的读取和保存不知道怎么调用

点评

Xiaochuzhang 发表于 2022-6-21 22:29 C 译 E 至少50JB起步的 你帮我搞起来我给你50jb 不够我打赏你没有问题   浙江省嘉兴市  发表于 2022-6-21 22:31
回复 支持 反对

使用道具 举报

结帖率:84% (102/122)

签到天数: 24 天

 楼主| 发表于 2022-6-21 22:30:41 | 显示全部楼层   浙江省嘉兴市
Xiaochuzhang 发表于 2022-6-21 22:29
C 译 E 至少50JB起步的

你帮我搞起来我给你50jb 不够我打赏你没有问题
回复 支持 反对

使用道具 举报

结帖率:90% (9/10)

签到天数: 25 天

发表于 2022-6-21 22:39:25 | 显示全部楼层   重庆市重庆市
13

点评

什么意思?   浙江省嘉兴市  发表于 2022-6-21 22:40
回复 支持 反对

使用道具 举报

结帖率:84% (102/122)

签到天数: 24 天

 楼主| 发表于 2022-6-21 23:10:21 | 显示全部楼层   浙江省嘉兴市
大神都睡觉了
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 22 天

发表于 2022-6-21 23:20:04 | 显示全部楼层   广东省广州市
十句以内还能免费翻译,这么长等好心人给你翻译吧

点评

这你要取找那些翻译的人了,我没时间最近都接不了单   广东省广州市  发表于 2022-6-21 23:48
多少啊   浙江省嘉兴市  发表于 2022-6-21 23:35
回复 支持 反对

使用道具 举报

结帖率:100% (9/9)

签到天数: 20 天

发表于 2022-6-22 00:18:26 | 显示全部楼层   广西壮族自治区崇左市
软件统计代码行数, 0.5-1.0元一行

补充内容 (2022-6-22 00:19):
而且你这个还使用了其他的类, 如果不翻译其他的类, 那翻译出来没意义, 如果翻译其他类, 那行数就不好说了....
回复 支持 反对

使用道具 举报

结帖率:84% (102/122)

签到天数: 24 天

 楼主| 发表于 2022-6-22 09:55:15 | 显示全部楼层   浙江省杭州市
哎看来大神都走了
回复 支持 反对

使用道具 举报

结帖率:80% (35/44)

签到天数: 9 天

发表于 2022-6-22 21:20:36 | 显示全部楼层   贵州省黔南布依族苗族自治州
放定制区吧,我看看哪个大冤种有时间帮你翻译。

点评

你不搞 也不至于骂别人吧,论坛这么多好心人 在你眼中都是 大冤种???? 这个问答区 成了 冤种区???????????   浙江省杭州市  发表于 2022-6-23 09:13
回复 支持 反对

使用道具 举报

  高级模式
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

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