请问这句话是什么意思?
CXXDlg *pDlg=(CXXDlg *)lparam;
说明:lparam 是线程函数的参数来的。
是不是生成 CXXDlg 的指针 pDlg 去指象哪个lparam被强制转换成CXXDlg ?
那么它到底为什么要这样做呢?是不是线程函数只能通过参数来传递参数呢?(除了全局变量)?
CXXDlg *pDlg=(CXXDlg *)lparam;
说明:lparam 是线程函数的参数来的。
是不是生成 CXXDlg 的指针 pDlg 去指象哪个lparam被强制转换成CXXDlg ?
那么它到底为什么要这样做呢?是不是线程函数只能通过参数来传递参数呢?(除了全局变量)?
解决方案 »
- 不用findwindow 和CreateMutex,还有什么办法不让一个实例连续运行2次
- 双击CListCtrl的一条记录产生什么消息,我想双击后产生一个对话框。
- 请教高手:如何使用可执行文件的到处函数?
- Debug与Release的困惑,求救!
- 多个线程可以公用一个ADO连接吗?
- 请问不足4位怎么左对齐右补0?
- 如何获得指定目录(含有子目录)的大小???
- 用过windbg工具的请进来,指点一下?
- 请问如何将char转成int型
- 网络编程如何保护服务器?(tcp/ip)(soket)
- 关于ethernet包的定制的讨论
- 请问:什么是“C runtime 函式庫的 Startup code”呢??
那你可以在传参的时候先把要传的参数强制转为LPVOID,转入后再换回所要的类型指针,举个例
有结构
struct stu
{
int a;
bool b;
};有结构变量
stu TEMP;有线程函数:
//线程函数只能为返回UINT(DWORD),含一个LPVOID的指针参数
并为全局的或是静态函数。
UINT func(LPVOID pLP)
{
stu pStu=(stu*)pLP; //一般线程函数的第一步就是把LPVOID转为自己想要的指针类型
//做一些事:
TRACE("%d",pStu->a);
}那你在某个函数中可以如此调用:
AfxBeginThread(func,(LPVOID)&TEMP);
//传入TEMP变量的指针,并强制转为LPVOID类型。