DWORD WINAPI ThreadDialogic(void *x)
{
int channel;
int i = 1,currkey=1;
char MesgPath[128],MesgName[128],key[10];
channel = InitChild();
if (channel<=0 )
{
Msg_display("Setup channel in child proecee is error");
Sleep(1000);
exit (0);
}
//魂飞魄散Q515
ReadService(channel,&Service);
sprintf(MesgPath,"%s",Service.Buff[0]);
sprintf(MesgName,"%s",Service.Buff[1]);
PlayFile(MesgName,ANY_DIG);//
sprintf(MesgName,"%s%s",MesgPath,"YLGG000.vox");
PlayFile(MesgName,ANY_DIG);
re:
sprintf(MesgName,"%s%s",MesgPath,"YLGG100.vox");
PlayFile(MesgName,ANY_DIG);
while(1)
{
GetDigit(1,60,"",key);
ClearDTMF();
i=atoi(key);
if (i>5)
{
if (currkey>=5)
{
currkey=1;
}
else
{
currkey++;
}
}
else
{
currkey=atoi(key);
}
sprintf(MesgName,"%s10%d.vox",MesgPath,currkey);
PlayFile(MesgName,ANY_DIG);
if (key[0] == '*')
{
break;
}
}
goto re;
return 0;
}
此博客展示了一段C语言代码,运用WinAPI实现线程服务功能。代码中初始化子进程通道,读取服务信息,播放指定文件,通过获取数字输入来动态改变播放文件,按特定条件可跳出循环,整体围绕线程服务的文件播放逻辑展开。

被折叠的 条评论
为什么被折叠?



