怎样把const char  *cMyData 类型转换为unsigned char *cData ?

解决方案 »

  1.   

    不能转换,
    主要是const的问题,C++要求不能修改const属性。
    要强行转换的话,试试static_cast。
      

  2.   

    Look!It's ok.
    CString b="我們";
    const char* ccVar;
    ccVar=(char*)(LPCTSTR)b;
    unsigned char* ucVar;
    ucVar=(unsigned char*)ccVar;
      

  3.   

    const char* pSrc = "ABC123";
    unsigned char *pData = (unsigned char*)(const_cast<char*>(pSrc));
      

  4.   

    to nustchenhf() :
    char是有符号的,而unsigned char无符号, 
    如果字符值超过128, 转换过来就不对了,
    怎样转换使不出错?
    如果是String="F6F4",怎样转换成unsigned char a=0xF6,
    unsigned char b=0xF4  ?
      

  5.   

    ( unsignd char * )( void * )
      

  6.   

    你的问题应该是问错了。
    请看一下下面的例子,注意其中的strtoul函数。
    -------------------------------
    #include <stdlib.h>
    #include <stdio.h>void main( void )
    {
       char   *string, *stopstring;
       double x;
       long   l;
       int    base;
       unsigned long ul;
       
       string = "3.1415926FThis stopped it";
       x = strtod( string, &stopstring );
       printf( "string = %s\n", string );
       printf("   strtod = %f\n", x );
       printf("   Stopped scan at: %s\n\n", stopstring );
       
       string = "-34932FThis stopped it";
       l = strtol( string, &stopstring, 10 );
       printf( "string = %s\n", string );
       printf("   strtol = %ld\n", l );
       printf("   Stopped scan at: %s\n\n", stopstring );   string = "3492F";
       printf( "string = %s\n", string );
       
       /* Convert string using base 2, 4, and 8: */
       for( base = 2; base <= 16; base *= 2 )
       {
          /* Convert the string: */
          ul = strtoul( string, &stopstring, base );
          printf( "   strtol = %ld(%lX) (base %d)\n", ul, ul, base );
          printf( "   Stopped scan at: %s\n", stopstring );
       }
    }
    ----------
    对于你上面的问题,得到了c=0xF6F4,如何得到0xF6和0xF4就很简单了。循环除256并求余就可以了。