那个什么《……你问我答》上面的例子
BOOL CMyThreadDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//启动两个线程
::AfxBeginThread(ThreadProc1,GetSafeHwnd());
::AfxBeginThread(ThreadProc2,GetSafeHwnd());
//.....
}编译没同过:
D:\ROYIN\VC\MulThread\MyThreadDlg.cpp(62) : error C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'unsigned int (void *)'
其中的ThreadProc1()是这样的:UINT ThreadProc1(LPVOID lParam)
{
}我知道是类型不对,就是不知道怎么转换啦,郁闷~
BOOL CMyThreadDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//启动两个线程
::AfxBeginThread(ThreadProc1,GetSafeHwnd());
::AfxBeginThread(ThreadProc2,GetSafeHwnd());
//.....
}编译没同过:
D:\ROYIN\VC\MulThread\MyThreadDlg.cpp(62) : error C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'unsigned int (void *)'
其中的ThreadProc1()是这样的:UINT ThreadProc1(LPVOID lParam)
{
}我知道是类型不对,就是不知道怎么转换啦,郁闷~
解决方案 »
- 双缓冲自绘
- 急!求助!vector保存的值的作用范围
- 如何连接sql server数据库,并向sql server数据库中存储数据和提取数据
- 怎么获得汉字字符串拼音首字母??
- 加班调查~
- CRecordSet与多个表关联,如何分别打开??
- ADO访问access数据库的问题
- 如何获取2000操作系统中管理员得name和密码(有什么api)谢谢!(50分相送)
- 刚刚工作问一个关于视图分割的问题
- 求Windows 95 System Programming SECRETS的原码
- 开发网络程序,是使用Winsock API 还是使用MFC提供的Socket类?
- 100 分 VS.NET2003 中怎么调用webservice?
::AfxBeginThread((AFX_THREADPROC)ThreadProc1,GetSafeHwnd());
::AfxBeginThread((AFX_THREADPROC)ThreadProc2,GetSafeHwnd());
::AfxBeginThread((AFX_THREADPROC)ThreadProc1,(LPVOID)GetSafeHwnd());
::AfxBeginThread((AFX_THREADPROC)ThreadProc2,(LPVOID)GetSafeHwnd());
AfxBeginThread(ThreadProc1,GetSafeHwnd(),THREAD_PRIORITY_NORMAL);
UINT ThreadProc1(LPVOID lParam)
我把 UINT ThreadProc1(LPVOID lParam);
UINT ThreadProc2(LPVOID lParam);定义为全局函数编译通过之前是在对话框类里定义的:
class CMyThreadDlg : public CDialog
{
// Construction
public:
CMyThreadDlg(CWnd* pParent = NULL); // standard constructor
//UINT .....不知道这样为什么不可以了?
::AfxBeginThread(ThreadProc1,(LPVOID)GetSafeHwnd());
::AfxBeginThread(ThreadProc2,(LPVOID)GetSafeHwnd());
//线程函数
static UINT ThreadFun(LPVOID lParam).cpp文件中UINT CCDlg::ThreadFun(LPVOID lParam)
{
CCDlg* pClass = (CCDlg*)lParam;
//pClass就是你传递进来的指针
}void CCDlg::Start()
{
//启动线程
AfxBeginThread(ThreadFun,this,THREAD_PRIORITY_NORMAL);
}
::AfxBeginThread(ThreadProc1,(LPVOID)GetSafeHwnd());
::AfxBeginThread(ThreadProc2,(LPVOID)GetSafeHwnd());
::AfxBeginThread(ThreadProc1,(LPVOID)GetSafeHwnd());
::AfxBeginThread(ThreadProc2,(LPVOID)GetSafeHwnd());ThreadProc1的声明:
static UINT ThreadProc2(LPVOID lParam);
不建议使用全局函数