String 好奇怪呀
时间:12-13
整理:3721RD
点击:
设备从串口发出的数据是十六进制的,并且进行了简单的编码。我从串口中读出的
数据是String类型的,显示在Indicator中也是正确的。我想用CIN对数据进行解码,创建的
c文件的形式是这样的:
/* CIN source file */
#include "extcode.h"
MgErr CINRun(uInt16 *ReadCnts, LStrHandle *String, float64 *TempDeg,
float64 *Rate);
MgErr CINRun(uInt16 *ReadCnts, LStrHandle *String, float64 *TempDeg,
float64 *Rate)
{
/* Insert code here */
return noErr;
}
就是这个Sting让我很不解,照理说是LStrHandle的指针类型,我完全应该可以看到里面
的数据,可是每次进断点调试的时候,里面都是说cnt的值不可见,str这个字符数组中什么
也没有。高手给支个招儿吧。我好郁闷呀,先谢谢啦。
*附LStrHandle的类型定义,引自cintools\extcode.h
typedef struct {
int32 cnt; /* number of bytes that follow */
uChar str[1]; /* cnt bytes */
} LStr, *LStrPtr, **LStrHandle;
数据是String类型的,显示在Indicator中也是正确的。我想用CIN对数据进行解码,创建的
c文件的形式是这样的:
/* CIN source file */
#include "extcode.h"
MgErr CINRun(uInt16 *ReadCnts, LStrHandle *String, float64 *TempDeg,
float64 *Rate);
MgErr CINRun(uInt16 *ReadCnts, LStrHandle *String, float64 *TempDeg,
float64 *Rate)
{
/* Insert code here */
return noErr;
}
就是这个Sting让我很不解,照理说是LStrHandle的指针类型,我完全应该可以看到里面
的数据,可是每次进断点调试的时候,里面都是说cnt的值不可见,str这个字符数组中什么
也没有。高手给支个招儿吧。我好郁闷呀,先谢谢啦。
*附LStrHandle的类型定义,引自cintools\extcode.h
typedef struct {
int32 cnt; /* number of bytes that follow */
uChar str[1]; /* cnt bytes */
} LStr, *LStrPtr, **LStrHandle;
用下面这个函数,好像不能直接访问cnt
length=LStrLen(LStrPtr str);
谢谢,可以得到字符个数了,看来ni在里面还是做了些手脚的
可是好像用MoveBlock来读其中的字符串时,居然什么都是0,高手再指点一下吧,谢啦先
我没用过MoveBlock,可以直接读写字符串内容
LStrPtr str;
length=LStrLen(str);
for(i=0;i<length;i++)
{
...
*(str->str+i) 就是字符串中第i个字符的内容
}
It is okey now, thank you very much!