void CFirstDlg::InitCombo()
{
CString* pArray = new CString;
char device;
int inser = 0;
DWORD dw=::GetLogicalDrives();
DWORD dwMask=1;
for(int i=0;i<32;i++)
{
if((dw & dwMask)!=0)
{
device='A'+i;
device=device&&":";
TRACE("%s\n",device);
pArray->Insert(inser,device);
inser=inser+1;
}
dwMask=dwMask*2;
}
int Leng = pArray->GetLength();
if((pArray->IsEmpty())!=0)
{
for(i=0;i<Leng-1;i++)
{
TRACE("%s\n",pArray[i]);
}
}
for(i=0;i<Leng-1;i++)
{
m_Device.AddString(pArray[i]);
}
delete pArray;
}
编译能通过,执行所找到的磁盘有问题
{
CString* pArray = new CString;
char device;
int inser = 0;
DWORD dw=::GetLogicalDrives();
DWORD dwMask=1;
for(int i=0;i<32;i++)
{
if((dw & dwMask)!=0)
{
device='A'+i;
device=device&&":";
TRACE("%s\n",device);
pArray->Insert(inser,device);
inser=inser+1;
}
dwMask=dwMask*2;
}
int Leng = pArray->GetLength();
if((pArray->IsEmpty())!=0)
{
for(i=0;i<Leng-1;i++)
{
TRACE("%s\n",pArray[i]);
}
}
for(i=0;i<Leng-1;i++)
{
m_Device.AddString(pArray[i]);
}
delete pArray;
}
编译能通过,执行所找到的磁盘有问题
device='A'+i;//device!=0
//":"!=NULL
//因此,device=1
void CFirstDlg::InitCombo()
{
CString* pArray = new CString;//存储盘符的数组
CString device;//从GetLogicalDrives函数中取出有几个驱动器,有则加入到pArray;
int inser = 0;\\插入位置
DWORD dw=::GetLogicalDrives();
DWORD dwMask=1;
for(int i=0;i<32;i++)
{
if((dw & dwMask)!=0)
{
device='A'+i;
device=device+":";\\连接成A:这种形式
TRACE("%s\n",device);\\调试输出
pArray->Insert(inser,device);\\插入数组,可能是这里错了,因为TRACE("%s\n",device);在Dubug窗口有输出,而TRACE("%s\n",pArray[i]);就没有了。
inser=inser+1;\\改变下一个位置
}
dwMask=dwMask*2;
}
int Leng = pArray->GetLength();\\得到长度
if((pArray->IsEmpty())!=0)
{
for(i=0;i<Leng-1;i++)
{
TRACE("%s\n",pArray[i]);
}
}
for(i=0;i<Leng-1;i++)
{
m_Device.AddString(pArray[i]);
}
delete pArray;
}
一个字符不就是一个数字吗?
A的代码是多少我忘了,但是‘A’+1就是B是没有错的