MAC的地址(如:00 e0 4c 51 84 34)保存在ini文件中。
我想通过程序读取并转换成byte数组(即:0x00,0xE0,……)。
但从string到byte的转换遇到困难,请大家帮忙!

解决方案 »

  1.   

    string sMax = TEXT("00e04c518434");
    BYTE pMac[6] = { 0 };for (int nIndex = 0; nIndex < 6; nIndex++)
    {
    _sntscanf(sMax.c_str() + nIndex * 2, 2, TEXT("%x"),
      &pMac[nIndex]);
    }orstring sMax = TEXT("00e04c518434");
    BYTE pMac[6] = { 0 };
    _sntscanf(sMax.c_str(), sMax.length() * sizeof(TCHAR),
        "%02x%02x%02x%02x%02x%02x",
        &pMac[0], &pMac[1], &pMac[2], &pMac[3], &pMac[4], &pMac[5]);
      

  2.   

    #include <string>
    using namespace std;
        string sMax = TEXT("00e04c518434");
        BYTE pMac[6] = { 0 };
        sscanf(sMax.c_str(), "%02x%02x%02x%02x%02x%02x",
            &pMac[0], &pMac[1], &pMac[2], &pMac[3], &pMac[4], &pMac[5]);
        
        TRACE("%#x, %#x, %#x, %#x, %#x, %#x\n", pMac[0], pMac[1], pMac[2], pMac[3], pMac[4], pMac[5]);