mfc简单问题

在头文件中已经定义了这个函数UINTThreadFunc(LPVOIDlpParam);BOOLCTexttextDlg::OnInitDialog(){CDialog:... 在头文件中已经定义了这个函数UINT ThreadFunc(LPVOID lpParam);

BOOL CTexttextDlg::OnInitDialog()
{
CDialog::OnInitDialog();

// Add "About..." menu item to system menu.

// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}

// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
m_ctrlprocess.SetRange(0,99);
m_second=10;
UpdateData(false);
UINT ThreadFunc(LPVOID lpParam)
{
threadinfo *pinfo=(threadinfo *)lpParam;
for(int i=0;i<100;i++)
{
int nTemp=pinfo->second;
pinfo->progress->SetPos(i);
Sleep(nTemp);
}
}
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
}
抱错是此行有一个“{”没有匹配项
error C2601: “ThreadFunc”: 本地函数定义是非法的
这两个错可我感觉没错啊
展开
 我来答
直男救星来了
2011-05-25 · TA获得超过673个赞
知道小有建树答主
回答量:168
采纳率:100%
帮助的人:203万
展开全部
这个我感觉确实像有点问题,你虽然在头文件里定义了UINT ThreadFunc(LPVOID lpParam);
,但是你方法的实现却是在BOOL CTexttextDlg::OnInitDialog()方法中,这应该不正确。
尝试这样改一下:
在CTexttextDlg的头文件里定义方法
UINT CTexttextDlg::ThreadFunc(LPVOID lpParam);
然后在CTexttextDlg的源文件里实现方法
UINT CTexttextDlg::ThreadFunc(LPVOID lpParam)
{
threadinfo *pinfo=(threadinfo *)lpParam;
for(int i=0;i<100;i++)
{
int nTemp=pinfo->second;
pinfo->progress->SetPos(i);
Sleep(nTemp);
}
}
然后在你需要的地方调用就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3b72985
2011-05-25 · 超过14用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:18万
展开全部
函数可以嵌套定义吗?就算可以也最好不要这样做。
那个“{”没有匹配也不一定就是这个代码段的问题,可能是其他函数体中的某个“{”没有匹配
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-05-25
展开全部


UINT ThreadFunc(LPVOID lpParam)
{
threadinfo *pinfo=(threadinfo *)lpParam;
for(int i=0;i<100;i++)
{
int nTemp=pinfo->second;
pinfo->progress->SetPos(i);
Sleep(nTemp);
}
}

放到外边去
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式