我用 AfxBeginThread 创建线程,但在编译时总是出现这样的error:
C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'unsigned int (void *)'
请教大家这是怎么回事,我已经是按照书上的例子做了,是不是在编译选项里有不对的地方?
C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'unsigned int (void *)'
请教大家这是怎么回事,我已经是按照书上的例子做了,是不是在编译选项里有不对的地方?
解决方案 »
- 哪些 Windows API 只有 ANSI 或 Unicode 版本?
- 用MFC编写实时监控车辆的软件好么?
- 想跳槽了!!好无聊 散分
- 当捕捉到EV_RXCHAR时,cbInQue是零,请经验人士指点
- 关于怎样作类似于媒体播放器那种不规则窗口
- AfxBeginThread启动一个线程时,传入一局部变量可以吗
- 如何显示CReBar的蚀刻线,急!急!急!
- 急-----哪位给我解释一下MSXML中的几个基本的数据类型的含义,高分相送!!!!!
- 请教,当FTP响应消息有多行文本时,如何判断
- 我该拿什么样的作品去面试.................................
- 用过VC++.Net的朋友进来一下
- 一个关于FormView的问题。
如果是1
AfxBeginThread(MyControllingFunction)
如果是2
AfxBeginThread(&MyThread)
m_Thread = AfxBeginThread(MyControllingFunction, this))
{
//do something
}CWinThread * hThread=AfxBeginThread(MyProc,NULL);hThread->SuspendThread();
hThread->ResumeThread();
看一下MSDN,上面讲得很详细。
把线程函数定义位静态的DIALOG类成员函数这样就可以操作控件了也可以把类指针作为参数传递给线程函数
{
CDialog* pDlg = (CDialog*)pPara;
....
CEdit* edit = pDlg->GetD.....();
//do something
}CWinThread * hThread=AfxBeginThread(MyProc,(LPVIOD)this);
从cthread继承一下,把你的dialog在initinstance中显示就可以了
2.添加一个对话框指针对象,
3。添加一个函数SetParentWnd(CWnd *pWnd);或其它
4.在你的函数中就可用对话框指针处理了
。
CMyThread *m_MediaPlayer;
m_MediaPlayer=new CMediaPlayer;
m_DlgMedia=new CDlgMediaPlay;
m_DlgMedia->Create(IDD_DLGMEDIAPLAY);
m_MediaPlayer->AddFile(FileName);
m_DlgMedia->ShowWindow(SW_SHOW);
m_MediaPlayer->SetParentWnd(m_DlgMedia->m_hWnd);
m_MediaPlayer->CreateThread();
m_MediaPlayer->Play();
AfxBeginThread(MyControllingFunction,pParam);
你看看代码写的对不对?