首页
社区
课程
招聘
[求助]关于c语言代码优化
发表于: 2015-9-16 18:47 3621

[求助]关于c语言代码优化

2015-9-16 18:47
3621
#define 封包_采集封包包头 {0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFA,0x2A,0x00,0x00,0x00,0x00,0x00,0x00}//更新
#define 封包_采集封包包尾 {0xB2,0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x46,0x05}//更新

void call_采集封包(int 怪物地址)
{
        int *封包内容=calloc(9,sizeof(int));
    int 怪物ID=*(int*)(怪物地址+偏移_怪物ID偏移);
        const byte BufHandel[16]=封包_采集封包包头;
        const byte BufTail[12]=封包_采集封包包尾;
        memcpy_s(封包内容,8*sizeof(int),BufHandel,16);
        memcpy_s(封包内容+0x04,8*sizeof(int),&怪物ID,4);
        memcpy_s(封包内容+0x05,8*sizeof(int),BufTail,12);
        _asm
        {
                push 封包内容;
                mov ecx,基址_端口与ip;
                mov edx,call_明文封包call地址;
                call edx;
        }
        Sleep(6000);
        free(封包内容);
}

我觉得我这样得申请内存的写法不太好,哪位大神能帮忙看下

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 35
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
原本要求效率的话,一般都是全用汇编实现,主要是用汇编我以后难修改代码了
2015-9-16 18:49
0
雪    币: 123
活跃值: (144)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
这个函数有多个线程同时调用吗没有就直接弄个静态变量就行了
2015-9-16 18:53
0
雪    币: 35
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
没有  只有一个线程在调用,貌似没有函数可以把BYTE数组合并的
应该说不能byte数组定义成 封包_采集封包包头+封包_采集封包包尾
2015-9-16 19:16
0
雪    币: 35
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
#define 封包_采集封包 {0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFA,0x2A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB2,0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xCE,0x07}
void call_采集封包(int 怪物地址)
{
        byte 封包内容[32]=封包_采集封包;
        int 怪物ID=*(int*)(怪物地址+偏移_怪物ID偏移);
        int buff=(int)封包内容;
        _asm
        {
          
                mov ebx,怪物ID
                mov dword ptr[封包内容+0x010],ebx;
                push buff;//warning C4409: 非法的指令大小
                mov ecx,基址_端口与ip;
                mov edx,call_明文封包call地址;
                call edx;
               
        }
        Sleep(6000);
}
改成这样了  不用申请内存
2015-9-16 20:37
0
游客
登录 | 注册 方可回帖
返回
//