我很着急!谢谢~~

解决方案 »

  1.   

    ::GetLogicalDriveStrings(128,dir);
    for(int i=0;i<127;i+=4)
    {char ch1,ch2;
     ch1=dir[i+3]; ch2=dir[i+4];
     str1.Format(" :\\");str1.SetAt(0,dir[i]);
         if(::GetDriveType(str1)==DRIVE_CDROM)
    ......
    }
      

  2.   

    ::GetLogicalDriveStrings(128,dir);
    for(int i=0;i<127;i+=4)
    {char ch1,ch2;
     ch1=dir[i+3]; ch2=dir[i+4];
     str1.Format(" :\\");str1.SetAt(0,dir[i]);
         if(::GetDriveType(str1)==DRIVE_CDROM)
    ......
    }
      

  3.   

    小小改动
    int len , ntmp;
    char dir[128];
    CString str1;
    len = ::GetLogicalDrives();
    num = 1;
    for(int i=0; i<32; i++)
    {
    len = len>>1;
    if((len&0x1 == 1))
    num++;
    if(len == 0)
    break;
    }
             //num为获得逻辑驱动的个数
    ::GetLogicalDriveStrings(128,dir);
    for(int i=0;i<num;i+=4)
    {char ch1,ch2;
     ch1=dir[i+3]; ch2=dir[i+4];
     str1.Format(" :\\");str1.SetAt(0,dir[i]);
     if(::GetDriveType(str1)==DRIVE_CDROM)
                            ......
    }