【发布时间】:2010-02-16 23:52:15
【问题描述】:
这是我第一次使用线程,所以我暂时不完全了解它们。
我有两个结构:
struct ddata //difference content
{
char *filename;
char *size;
};
struct ddata *difference = (struct ddata *) malloc( dif * sizeof *difference );
struct test
{
struct ddata* difference;
int diff;
};
struct test *MSG2;
MSG2 = (struct test*)malloc(sizeof(test));
MSG2->difference = difference;
MSG2->diff = diff;
我想将 MSG2 两个结构“发送”到我的线程,我是这样做的:
CreateThread(
NULL, // default security attributes
0, // use default stack size
CopyThread, // thread function name
&MSG2, // argument to thread function
0, // use default creation flags
NULL);
现在,我的问题来了。在我的线程中,我将 pParam 回退,我想打印出一些数据来测试它,但我得到的是随机字符。 我的主题:
DWORD WINAPI CopyThread( LPVOID pParam )
{
char a[100];
test *Test = (test*)(pParam);
sprintf(a, "diff: %s", Test->difference->filename );
MessageBoxA(NULL,a,0,0);
}
我做错了什么?
提前致谢!
坎皮
【问题讨论】:
标签: c windows mfc multithreading