LPSTR lpStr = _T("ABCD5678");
DWORD dwResult = 0;
char *m;
m = ((char*)(&dwResult));
sprintf(m,"%s",lpStr);
//这样lpStr中的内容就存在dwResult中了
char *n;
n = ((char*)(&dwResult));
//即可取出

解决方案 »

  1.   

    BYTE by[4];
    by[0] = 0x78;
    by[1] = 0x56;
    by[2] = 0xCD;
    by[3] = 0xAB;
    dwResult = MAKELONG(MAKEWORD(by[0], by[1]), MAKEWORD(by[2], by[3]));
      

  2.   

    DWORD dwResult = MAKELONG(MAKEWORD(0x78, 0x56), MAKEWORD(0xCD, 0xAB));
      

  3.   

    将lpStr中的字符一个一个取出来,转换成数字,如A->10,B->11...
    then dwResult=10*(0xFFFF>>4)+11*(0xFFFF>>8)+12*(0xFFFF>>12)+...
                   +7*(0xFFFF>>28)+8
      

  4.   

    将lpStr中的字符一个一个取出来,转换成数字,如A->10,B->11...
    then dwResult=10*(0xFFFF>>4)+11*(0xFFFF>>8)+12*(0xFFFF>>12)+...
                   +7*(0xFFFF>>28)+8
      

  5.   

    to pcman1990(pcman) 
    忘了说明了,我的lpStr是随时变化的。
      

  6.   

    to pcman1990(pcman)
    你还不如写 dwResult = 0xABCD5678;
      

  7.   

    longyii(宁静.致远) 说得
    将lpStr中的字符一个一个取出来,转换成数字,如A->10,B->11...
    eg:
       AB--> a = 10*16+11;
       CD--> b = ;
       56--> c =;
       78->  d = ;DWORD dwResult = MAKELONG(MAKEWORD(d, c), MAKEWORD(d, a));
      

  8.   

    to shan_hy() 
    存储顺序不对的。
      

  9.   

    不好意思,刚才写错了,应该是0xFFFFFFFF
    这个过程可以用循环实现,
    虽然笨了点,但肯定能实现
      

  10.   

    to shan_hy(),  tomPeakz(马中赤兔):
    举例说明用MAKEWORD和MAKELONG来做而已。
      

  11.   

    to shan_hy(),  tomPeakz(马中赤兔):
    举例说明用MAKEWORD和MAKELONG来做而已。
      

  12.   

    to longyii(宁静.致远)
    麻烦写一段吧,兄弟我没看懂。:(
    最怕的就是 << 、 >> 马上就昏了。
    如果成功,100分送上。
      

  13.   

    写错了DWORD dwResult = MAKELONG(MAKEWORD(a, b), MAKEWORD(c, d));
      

  14.   

    0xFFFFFFFF>>4就是2的28次方啊!!
    0xFFFFFFFF>>8就是2的24次方啊
    依次类推,就是为了计算方便,不用调用数学函数
      

  15.   


       AB--> a = 10*16+11;
       CD--> b = ;
       56--> c =;
       78->  d = ;DWORD dwResult = MAKELONG(MAKEWORD(a, b), MAKEWORD(c, d));这个一定行,我试过了
      

  16.   

    我根据各位的意见写成的代码,测试通过:
    INT HexChToInt(CHAR chTemp);
    DWORD dwResult = 0;
    CHAR * pChResult = (CHAR*)(&dwResult);
    CHAR * pChar = lpStr;for(int i = 0; i < 4 ; i++)
    {
    int m,n,nResult;
    CHAR chTemp = pChar[i * 2];
    m = HexChToInt(chTemp);
    chTemp = pChar[i * 2 + 1];
    n = HexChToInt(chTemp);
    nResult = m * 16 + n ;
    memcpy(pChResult + i,&nResult,sizeof(CHAR));}
    INT HexChToInt(CHAR chTemp)
    {
    INT n;
    switch(chTemp)
    {
    case 'A':
    case 'a':
    n = 10;break;
    case 'B':
    case 'b':
    n = 11;break;
    case 'C':
    case 'c':
    n = 12;break;
    case 'D':
    case 'd':
    n = 13;break;
    case 'E':
    case 'e':
    n = 14;break;
    case 'F':
    case 'f':
    n = 15;break;
    default:
    n = _ttoi(&chTemp);
    }
    return n;
    }