LPVOID参数转换?

sjerpy 2004-12-21 10:19:34
typedef struct
{
SOCKET sClient;
DWORD dwIP;
}ClientInfo;

ClientInfo *client =new ClientInfo;

AfxBeginThread(ClientCommand,(LPVOID)client ) ///???/改怎么转成LPVOID啊?
...全文
188 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjerpy 2004-12-22
  • 打赏
  • 举报
回复
DWORD ThreadID;
HANDLE htmp=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ClientCommand,(LPVOID)client,CREATE_SUSPENDED,&ThreadID);
这样可以.

CreateThread和AfxBeginThread有什么区别啊?
sjerpy 2004-12-22
  • 打赏
  • 举报
回复
static UINT WINAPI ClientCommand(LPVOID lpParam);

UINT WINAPI CServerJob::ClientCommand(LPVOID lpParam)
{
return 1;
}

这样定义为什么不可以啊?
qqxia 2004-12-22
  • 打赏
  • 举报
回复
传递指针,不要传递类对象,呵呵
BigFanOfCpp 2004-12-22
  • 打赏
  • 举报
回复
是你的第一个参数的问题,应该传进去原型为UINT Fun(LPVOID lp);类型的函数才对.
看看你的ClientCommand定义.
sjerpy 2004-12-22
  • 打赏
  • 举报
回复
可是有问题啊
E:\测试程序\ThreadTest\ServerJob.cpp(110) : error C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'unsigned int (void *)'
oyljerry 2004-12-22
  • 打赏
  • 举报
回复
CreateThread对于跨线程传递mfc对象,容易出错
oyljerry 2004-12-22
  • 打赏
  • 举报
回复
AfxBeginThread是mfc封装类,比较好用
EnochShen 2004-12-21
  • 打赏
  • 举报
回复
你已经转换了
typedef struct
{
SOCKET sClient;
DWORD dwIP;
}ClientInfo;


UINT ClientCommand(LPVOID lpParam)
{
ClientInfo *pClientInfo = (ClientInfo*)lpParam;

return 0;
}


{
ClientInfo *client =new ClientInfo;
AfxBeginThread(ClientCommand,(LPVOID)client );
}

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧