声明变量TCHAR szBuffer[256],然后读注册表数据到szBuffer中,由于注册表中该项并不存在,所以读取结束后,通过用SetDlgItemText向控件写入数据时就会报错,请问怎样才能将szBuffer中的数据在读注册表前清空。
另外在Visual Studio .NET 2003环境下,在MessageBox中用 MB_ICONINFORMATION,竟然会报错,说为声明,可是在库文件winuser.h里能找到这个声明啊,为什么会报错?

解决方案 »

  1.   

    如果没记错的话
    sz风格的写法就是"string end by zero"就是以零结尾 的字符串。
    因为你声明的时候是windows随机分配的一块内存。
    并未给你初始化。所以里面的内容完全可能象下面这样:
    sz[0]='s';sz[1]='h';sz[2]='i';sz[3]='t';sz[4]='0';
      

  2.   

    szBuffer[0] = '\0'; 就可以完成对它的清空
      

  3.   

    ZeroMemory( szBuffer, sizeof(szBuffer) )
      

  4.   

    确定了,是memset (szBuffer ,0x0,256);
    谢谢各位帮忙