帮忙翻译一句源代码

flyskylf 2007-04-17 09:28:21
C++中是:int WINAPI SW_ReceiveCID(int nIndex, char *lpBuf);
例子是如下调用的:
BOOL WINAPI yzInitSystem()
{
char buf[16];
int i;

SW_Init();
SW_SetType(1); //设置类型
LineCount=SW_GetCount();
strcpy(buf,"共");
itoa(LineCount,num,10);
strcat(buf,num);
strcat(buf,"线");
SetWindowText(GetDlgItem(hGWnd,IDC_LINE),buf);
for (i=0;i<LineCount;i++)
{
LineStatus[i]=0; //线路状态
}
SetTimer(hGWnd,ID_TIME,20,TimerProc);
return TRUE;
}

在C#中应该如何写?
我如下写法
char[] buf = new char[50];
int i;

int LineCount=SW_GetCount();
for (int line = 0; line < LineCount; line++)
{
//收到CID处理
i = SW_ReceiveCID(line, buf);
if (i == -1)
{
this.textBox1.Text = "4路电话语音盒是否安装!";
return;
}
else
if (i != 0)
{
this.label2.Text = i.ToString();
this.textBox1.Text = "线" + line.ToString() + ":";
for (int n = 0; n < i; ++n)
{
this.textBox1.Text += buf[n].ToString().Trim();
}
}
}
结果buf中全不是空,怎么回事?
...全文
188 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
路人霆 2007-04-17
  • 打赏
  • 举报
回复
帮顶。。。
AdamLin 2007-04-17
  • 打赏
  • 举报
回复
char[] buf = new char[50];只是创建了一个数组,并没给它置空,当然不会是空的。
数组是引用类型,当你char[] buf = new char[50];时,在内存给你划分了50个长度的char类型长度的空间。你此时有个指针指向这个空间,但这些空间里原本就有数据,你没有清空。

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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