Thread=CreateThread(NULL,0,即将调用函数B 这里应该填入什么内容?,NULL,0,&ThreadID);
函数B:
DWORD WINAPI Create(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow)
在创建线程参数中 应该填入什么?
十分感谢
13 个解决方案
Thread=CreateThread(NULL,0,即将调用函数B 这里应该填入什么内容?,NULL,0,&ThreadID);
函数B:
DWORD WINAPI Create(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow)
在创建线程参数中 应该填入什么?
十分感谢
直接以Create为第三个参数是不行的,应该再建一个函数将DWORD WINAPI Create(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow) 包装起来。
DWORD WINAPI ThreadProc( LPVOID lpParameter)
{
Create....
return 0;
}
Thread=CreateThread(NULL,0,ThreadProc, NULL,0,&ThreadID);
如果是在windows下编程,CreateThread相关的例子程序可以很容易的找到的。
Thread=CreateThread(NULL,0,即将调用函数B 这里应该填入什么内容?,NULL,0,&ThreadID);
即将调用函数B 这里应该填入什么内容?//....线程函数名
函数是啥参数是要看你做什么的。第一步你必须了解各个参数含义是啥,然后根据你需求填参数。想别人给你个用之海内都可以的答案,这是不可能的。编程哪有这么简单。要说这里该填什么,估计神仙也不知道
二楼的方法 好像可用.但是我还没调试出来.
说一下我要调用的函数
DWORD WINAPI Create(LPVOID lpParam)
{
mcdef* pStruct = (mcdef*)lpParam;
static TCHAR szAppName[]=TEXT("Test");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.style=CS_HREDRAW|CS_VREDRAW;
wndclass.lpfnWndProc=WndProc;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hInstance=hInstance;
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszClassName="Thread";
wndclass.lpszMenuName=NULL;
RegisterClass(&wndclass);
hwnd=CreateWindow("Thread",TEXT("Test"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
ShowWindow(hwnd,iCmdShow);
UpdateWindow(hwnd);
while(GetMessage (&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
事实上就是一个CreateWindow的函数
...你让线程调Create函数当然要..写函数名..至于Create的参数可以通过CreateThread的第4个参数传给它...
那您的意思是 定义一个结构体,然后利用结构体把参数传进去?
刚才那个代码有点儿问题 测试时候 没改回去 重发一下
DWORD WINAPI Create(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow)
{
static TCHAR szAppName[]=TEXT("SDK");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.style=CS_HREDRAW|CS_VREDRAW;
wndclass.lpfnWndProc=WndProc;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hInstance=hInstance;
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszClassName="Thread";
wndclass.lpszMenuName=NULL;
RegisterClass(&wndclass);
hwnd=CreateWindow("Thread",TEXT("Test"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
ShowWindow(hwnd,iCmdShow);
UpdateWindow(hwnd);
while(GetMessage (&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
就是想调用这个函数来着
DWORD WINAPI Create(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow)
把线程参数定义为一个结构,然后传入指针即可。2楼的方法是可行的!
多谢楼上 【云淡风轻】 大哥指点.
小弟昨天已经做成功了.
十分感谢关注