Я читал некоторый код, в котором программист впервые определил
typedef void* BLUEVELVETC_HANDLE;
, и затем он использовал эту переменную в структуре.
struct ThreadArgs
{
BLUEVELVETC_HANDLE pSDK;
EBlueVideoChannel nVideoOutputChannel;
BLUE_U32 VideoModeExt;
EUpdateMethod UpdateFormat;
EMemoryFormat MemoryFormat;
};
, чем он создал новый поток и отправил структурув качестве аргумента.
ThreadArgs args;
args.pSDK = pSDKOut;
args.nVideoOutputChannel = BLUE_VIDEOCHANNEL_A;
args.VideoModeExt = VideoModeExt;
args.UpdateFormat = UpdateFormat;
args.MemoryFormat = MemoryFormat;
unsigned int ThreadId = 0;
g_hThread = (HANDLE)_beginthreadex(NULL, 0, &PlaybackThreadFifoMode, &args, CREATE_SUSPENDED,&ThreadId);
и, наконец, в этой функции он использовал аргументы.
unsigned int __stdcall PlaybackThreadFifoMode(void* pArg)
unsigned int __stdcall PlaybackThreadFifoMode(void* pArg)
{
ThreadArgs* pArgs = (ThreadArgs*)pArg;
BLUEVELVETC_HANDLE pSDK = pArgs->pSDK;
}
Может кто-нибудь любезно объяснить мне, что означает этот код.