C++ CreateThread 无法确定需要那个重载函数
时间: 2023-06-25 09:07:21 浏览: 51
如果您想使用C++的CreateThread函数,它有多个重载函数,您可以根据您的需求选择其中一个。下面是一些常用的CreateThread函数的重载:
1. `HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId);`
这是最基本的CreateThread函数,它创建一个新线程并返回一个指向该线程的句柄。lpThreadAttributes参数指向一个SECURITY_ATTRIBUTES结构,该结构指定线程对象的安全性,可以为NULL。dwStackSize参数指定新线程的堆栈大小,如果为0,则使用默认大小。lpStartAddress参数指向线程函数的地址,lpParameter参数指向传递给线程函数的参数,dwCreationFlags参数指定线程创建的标志,可以为0。lpThreadId参数指向接收新线程标识符的变量。
2. `uintptr_t _beginthreadex(void* security, unsigned stack_size, unsigned (__stdcall* start_address) (void*), void* arglist, unsigned initflag, unsigned* thrdaddr);`
这个函数与CreateThread函数类似,但它是在Windows下的C运行时库中定义的。security参数指定线程安全属性,可以为NULL。stack_size参数指定新线程堆栈大小,如果为0,则使用默认大小。start_address参数指定线程函数的地址,arglist参数指向传递给线程函数的参数,initflag参数指定线程创建的标志,可以为0。thrdaddr参数指向接收新线程标识符的变量。
3. `HRESULT CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID riid, LPVOID* ppv);`
这个函数用于在当前进程中创建一个指定的COM组件对象。rclsid参数是一个CLSID,指定要创建的组件的类别。pUnkOuter参数指向一个外部未知的指针,通常为NULL。dwClsContext参数指定组件的上下文,可以是INPROC_SERVER、INPROC_HANDLER、LOCAL_SERVER或REMOTE_SERVER之一。riid参数是一个IID,指定请求的接口的标识符。ppv参数是一个指向接口指针的指针。
请根据您的需要选择适当的CreateThread函数重载。