代码如下:char buf[100];
DWORD dwRead;
if(ReadFile(hPipe,buf,100,&dwRead,NULL))
{
    MessageBox(buf[1]);
// MessageBox(buf);

}
else 
{
MessageBox("读取数据失败!");
    return; }
现在MessageBox(buf);是没问题的,可读到相应的值。可是当我用MessageBox(buf[1]),我想显示buf[1]的值时候编译器就会报这样的错误
error C2664: 'MessageBoxA' : cannot convert parameter 1 from 'char' to 'const char *'
        Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
请问大仙如果解决  非常感谢!!!

解决方案 »

  1.   


    CString strTmp(buf[1]);
    MessageBox(strTmp);
      

  2.   

    MessageBox不能传入字符
    你要想显示可以用4楼的方法
      

  3.   

    用4楼的方法CString strTmp(buf[1]);
    MessageBox(strTmp);
    发现确实能接收到buf[1],但是接收到的值是乱码(比如我在客户端发送的是char buf[0]=1,但是在接收的时候发现接收到的buf[0]不是等于1,而是乱码])。请问下是为什么  如何解决。非常感谢!!!
      

  4.   

    用四楼的方法
    CString strTmp(buf[1]);
    MessageBox(strTmp);
    发现确实能接收buf[1],但接收到的是乱码(比如我发送char buf[0]=1,接收是发现buf[0]是乱码),请问下为什么,如何解决这个问题,非常感谢!!!
      

  5.   

    CString strTmp;
    strTmp.Format(_T("%c"),buf[1]);
    MessageBox(strTmp);
      

  6.   

    这些方法都不行
     csdn没有高人了吗
      

  7.   

    一般看到这种话我都不会回复
    我不是什么高人
    只是希望能够和大家共同探讨共同学习
    但是鉴于你问题开始就没问清楚
    而且可能你自己也没意识到
    所以我再试试看能不能和你交流一下首先
    并不是用char的变量就一定是字符串
    能够显示出来的可读字符串是符合一定的码编码要求的
    其他值都是乱码
    你题目给你的感觉就是buf存的就是字符串
    而且是单字节的
    所以buf[1]才是有意义的
    4楼的方法针对这种前提是可行的
    可是你要是说char buf[0]=1
    这个用四楼的方法不可能看到1
    因为ASCII码里1不是可见字符
    所以肯定的乱码
    如果你想看到的是1那就用
    CString strTmp;
    strTmp.Format(_T("%d"),buf[1]);
    总之一切取决于你的需求
    这和手高手低没关系