我正在尝试将此结构放入我的主题中,但是我正在使用它。
struct我正在使用:
typedef struct {
HWND hWnd;
int cntrlid;
TCHAR text[BUFF];
}parametros;
在消息开关中我有控制按钮的情况,启动线程:
case IDC_TAB_A:
threaddata.hWnd=hWnd;
threaddata.cntrlid=IDC_TAB_A;
_tcscpy(threaddata.text, _T("Carregou A"));
hThreadsender=CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) ThreadSenderProc, (LPVOID) &threaddata, 0, NULL);
break;
和处理我得到的线程的函数:
DWORD WINAPI ThreadSenderProc(LPVOID param){
parametros temp=*((parametros *)param);
EnviaLetra(temp.hWnd, temp.text,temp.cntrlid);
return 0;
}
某些事情肯定是错的,但是我无法得到它是什么,任何人都可以帮忙吗?
提前致谢! (抱歉英语不好!)
答案 0 :(得分:2)
您的结构在线程可以访问之前被销毁。使用事件进行同步,或动态分配结构。
PS:删除那个可怕的(LPTHREAD_START_ROUTINE)
演员。如果您正确声明了您的功能,则不需要它。除非你确切地知道你正在做什么以及为什么,否则函数指针强制转换是禁止的。
哦,(LPVOID)
演员阵容也没用。