描述符的问题?谢谢回答

xintong8171 2008-03-12 10:53:06
在 C++中,我可以进行如下操作:
char x[4];
CString y;
int a,b,c,d;
x[0] =a;
x[1] =b;
x[2] =c;
x[4] =d;
y = x
那么,如何在 Symbian中实现这段代码呢?
...全文
162 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
Juncof 2008-03-19
  • 打赏
  • 举报
回复
typedef unsigned short int TText16;
xintong8171 2008-03-17
  • 打赏
  • 举报
回复
有没有关于描述符的详细的文档参考啊
sharetop 2008-03-14
  • 打赏
  • 举报
回复
我试了,y=x是可以的啊?

在symbian中是可以使用char的,typedef signed char TInt8;你看它的TInt8其实就是一个无符号的char罢了。
只是不建议使用。

_LIT(KTxt,"1234");
TBuf<4> x(KTxt);
TBuf<4> y;

TInt a,b,c,d;
a='A';b='B';c='C';d='D';

x[0] =a;
x[1] =b;
x[2] =c;
x[3] =d;

y=x;

console->Printf(y);


xintong8171 2008-03-14
  • 打赏
  • 举报
回复
继续提问:
我们知道,在VC中,我们可以通过
char x[4];
int a,b;
x[0] = a;
x[1] = b;
x[2] = 0x00;
x[3] = 0x00;
来通过a,b的不同值得到不同的汉字。
想问问:在Symbian中可以使用 char 么?我在模拟器上用上述方法是成功的。但有什么办法使
TBuf<32> y = x;呢 (因为TBuf没有 = ,而我使用 y.Append(x) 也提示有错。)//在VC中为 CString y = x;
谢谢。。。。。
xintong8171 2008-03-14
  • 打赏
  • 举报
回复
谢谢大家的回答,希望我们共同努力,得到正确的结果。
xintong8171 2008-03-14
  • 打赏
  • 举报
回复
恩,看来还是要使用 char 才行。可就不知道怎么使
char x[4];
TBuf<32> y = x;
了?郁闷啊
sharetop 2008-03-14
  • 打赏
  • 举报
回复
哦,汉字啊。TBuf<4> 相当于 TBuf16<4>,它长度占了8字节,所以肯定是不行的。你试试TBuf8<4>看看,或者TPtr这个描述符,或者还是用char吧。

xintong8171 2008-03-14
  • 打赏
  • 举报
回复
按照 sharetop 说的的确是可以相等了,但是却不能正确得到汉字,解出来是乱码的。。。。
xintong8171 2008-03-14
  • 打赏
  • 举报
回复
但是通过 TBuf的操作,并不能得到汉字。
aspnetwuxueyou 2008-03-13
  • 打赏
  • 举报
回复
写错了
TBuf <10> x;
x[0]=a;
x[1]=b;
x[2]=c;
x[3]=d;
TBuf <10> y;
y = x;
aspnetwuxueyou 2008-03-13
  • 打赏
  • 举报
回复
TBufC <10> x;
x[0]=a;
x[1]=b;
x[2]=c;
x[3]=d;
TBufC <10> y;
y = x;
xintong8171 2008-03-13
  • 打赏
  • 举报
回复
谢谢 aspnetwuxueyou ,不过有一点是: 我的 a,b,c,d 是分开的四个变量。
aspnetwuxueyou 2008-03-13
  • 打赏
  • 举报
回复
_LIT(Ktext, "abcd");
TBufC<10> x( Ktext );
TBufC<10> y;
y = x;
sharetop 2008-03-13
  • 打赏
  • 举报
回复

最后一句也可以直接写成 y=x;也是可以的。

只是在 TBuf<4> x;以后,并没有为x分配空间?
sharetop 2008-03-13
  • 打赏
  • 举报
回复
楼上的的好象不行。在TBuf<10> x;以后这个描述符长度不够,所以在x[0]=a;时后出错。

我实验了一下:

_LIT(KTxt,"0000");
TBuf<4> x(KTxt);
TBuf<8> y;

TInt a,b,c,d;
a=b=c=d=10;

x[0] =a;
x[1] =b;
x[2] =c;
x[3] =d;

y.Append(x);


这样就可以了。
anel 2008-03-12
  • 打赏
  • 举报
回复
TPtr8 pt(x,4,4);
Paip_Ceser 2008-03-12
  • 打赏
  • 举报
回复
TBuf<8> temp;
TInt a,b,c,d; //Init?
CDesCArray * y = new(ELeave) CDesCArrayFlat(4);
CleanupStack::PushL(y);
temp.AppendNum(a);
y->AppendL(temp);
temp.Zero();
temp.AppendNum(b);
y->AppendL(temp);
temp.Zero();
temp.AppendNum(c);
y->AppendL(temp);
temp.Zero();
temp.AppendNum(d);
y->AppendL(temp);
CleanupStack::Pop();
就是将整型abcd给字符数组(描述符)数组,只是我的愚见。-_-!
assert_always 2008-03-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xintong8171 的回复:]
另外,我还想问一个问题,如果我的一个函数的返回值 在 VC中是 CString,那么在Symbian中应该怎么声明函数呢?
[/Quote]
用HBufC或者HBuf
xintong8171 2008-03-12
  • 打赏
  • 举报
回复
再补充一下:把值赋进数组没什么问题,问题就出在 y = x 这句,用描述符怎么使用 = 呢?
xintong8171 2008-03-12
  • 打赏
  • 举报
回复
另外,我还想问一个问题,如果我的一个函数的返回值 在 VC中是 CString,那么在Symbian中应该怎么声明函数呢?
加载更多回复(3)

3,119

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧