51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 3660|回复: 13
打印 上一主题 下一主题

[原创] 来看看我这段调用自己的dll创建协议数据Buff的LR代码,为什么会编译出类型转换错?

[复制链接]
  • TA的每日心情
    奋斗
    2015-6-25 18:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    1#
    发表于 2008-11-20 11:24:38 | 显示全部楼层
    char* CreateMsg(char* p, unsigned short msglen)
    {
            char *abc;
            lr_message("p=%s,meglen=%d\n",p,msglen);
            abc = "这是一个字符指针!!";
            return abc;
    }

    Action()
    {
       //     int nRet;
            char pMsg[1024];
            char* pMsgbuf;
                    unsigned short msglength = 0;
            strcat(pMsg,"this is a char array!!");               
            pMsgbuf = CreateMsg(pMsg, msglength);//此处编译报错
            lr_message(pMsgbuf);
        return 0;
    }

    调用和返回都没有问题。

    你的C函数声明里的:“&”是做啥的??
    char* CreateMsg(char* p, unsigned short& msglen);
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-6-25 18:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2008-11-20 11:26:14 | 显示全部楼层
    你调用的DLL返回的不是指针?用强制类型转换就没事,那么是你的DLL问题吧
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-6-25 18:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
    发表于 2008-11-20 12:01:09 | 显示全部楼层
    operands of = have illegal types `pointer to char' and `int'

    那么我们来分析一下,这个错误明显是因为LR编译器期望得到字符指针,而从函数返回的是整形。

    在不知道你的DLL代码情况下,假设你的DLL返回的确实是一个字符指针,那么在LR就误认为整形变量?

    不知道LZ的DLL每次返回的结果都是固定的么?有没有可能DLL有分支可以返回其他值
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-13 13:27 , Processed in 0.062995 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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