unsigned long _beginthreadex( void *security, unsigned stack_size, unsigned ( __stdcall *start_address )( void * ), void *arglist, unsigned initflag, unsigned *thrdaddr );
Your function LyricsThread, shoudl return type void, not unsigned __stdcall
yeah its a bit obfuscated, which is why I prefer CreateThread();