读书人

关于MFC的初学者级有关问题

发布时间: 2013-01-23 10:44:49 作者: rapoo

关于MFC的菜鸟级问题
各位大神,本人菜鸟头一次编写MFC,欲写一个给COMBOBOX选到磁盘分区列表,书上说把此函数添加到OnInitDialog()函数最后面即可,但是添加后报错,希望大神指点下。

我写的代码如下:

//前面是BOOL CImmunityUDlg::OnInitDialog(){}
void CImmunityUDlg::InitComboDriver()
{
char szDriverString[MAXBYTE] = {0};
char *pTmp = NULL;

SetDlgItemText(IDC_COMBO_DRIVER, _T("请选择欲免疫的盘符..."));

GetLogicalDriveStrings(MAXBYTE,szDriverString);

pTmp = szDriverString;

while (*pTmp)
{
m_ComboDriver.AddString(pTmp);//m_ComboDriver为利用类向导建立的CComboBox类型的memberpTmp += 4;
}
}

报错信息如下

D:\Microsoft Visual Studio\MyProjects\ImmunityU\ImmunityUDlg.cpp(121) : error C2039: 'InitComboDriver' : is not a member of 'CImmunityUDlg'
d:\microsoft visual studio\myprojects\immunityu\immunityudlg.h(14) : see declaration of 'CImmunityUDlg'
D:\Microsoft Visual Studio\MyProjects\ImmunityU\ImmunityUDlg.cpp(122) : error C2601: 'InitComboDriver' : local function definitions are illegal
D:\Microsoft Visual Studio\MyProjects\ImmunityU\ImmunityUDlg.cpp(122) : fatal error C1903: unable to recover from previous error(s); stopping compilation
还请高手多多指教!!
[解决办法]
在CImmunityUDlg的头文件添加InitComboDriver的声明:

void InitComboDriver();
[解决办法]
朋友多看看书啊,你代码有个死循环

这么改:


if (pTmp) // 判断指针是否有效这样写,而不是*ptmp,
{
m_ComboDriver.AddString(pTmp);//m_ComboDriver为利用类向导建立的CComboBox类型的member pTmp += 4;
}

读书人网 >C++

热点推荐