您现在的位置: 爱51代码网 >> 范文 >> 文章正文
assignment makes integer from pointer without a cast [enabled by default

assignment makes integer from pointer without a cast [enabled by default

typedef struct{     unsigned char TermId[8];       unsigned char TerminalType;          unsigned long MerchNum; }EMV_PARAM;

假设我的要引用的第三方库中有这个一个结构体,我在java层的声明:
Java code?12 public class EMV_Param {public String termId;     public String terminalType;public int merchNum;

我从java传到C的是一个对象,前2个属性是string,后一个是int。
然后我在C中要把这个值得到赋值到结构体里,我是这样操作的。

C/C++ code?12 EMV_PARAM ep;strcpy(ep.TermId,t_emv);     ep.TerminalType=tt_emv;
其中t_emv,tt_emv都是我得到的jstring类型的值。
但是编译的时候,jni/EmvHandler.c:124:17: warning: assignment makes integer from pointer without a cast [enabled by default]

也就是ep.TerminalType=tt_emv; 这个报出了那种提示。我这样赋值有错吗?
你是怎么做的? 我看了下gps的jni文件
apn 是jstring型的
const char *apnStr = env->GetStringUTFChars(apn, NULL);

warning: assignment makes integer from pointer without a cast

这个意思是说你把指针赋值给了整形(C中char就是整形)。所以你要讲java传过来的的jstring转成char,或者直接传过来一个jchar或int。下面是怎么样把jstring转成char的例子:

const char *apnStr = env->GetStringUTFChars(t_emv, NULL);
ep.TerminalType = *apnStr;

或者

char[] apnStr = env->GetStringUTFChars(t_emv, NULL);
ep.TerminalType = apnStr[0];

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    undefined reference timer_crea
    linux文件/usr/lib破坏了,还原后
    linux上运行system函数时,print
    Failed to open eth0
    android手机无法与eclipse或电脑
    C/C++洗牌算法源代码
    servlet技术实现用户名唯一的验证
    E-business suite system servic
    ZOJ 3700 Ever Dream 文章中单词
    TortoiseGit和msysGit安装及使用
    ZOJ 3700 Ever Dream 文章中单词
    TortoiseGit和msysGit安装及使用
    sharepoint 2010 获取用户信息Us
    mysql主从同步延迟方案解决的学习
    生日旅行总结
    中小板生日快乐随感
    送生日快乐桑葚乳酪小蛋糕
    写给女儿的生日快乐
    总分公司财务核算
    恢复使用繁体字可行性研究报告
    Qt线程里面如何给一个结构体
    qt的connect(timer,SIGNAL(t
    无法访问android.app.Activi
    android子线程中处理GPS代码
    QT 获取鼠标点击对象信息问题
    如何让一个service监听按键事
    android程序运行崩溃,然后不
    监听去电状态的时候状态直接
    监听去电状态的时候状态直接
    qml和c++交互 用的modelist 
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |