关于mciSendString的新手问题
本小菜写了如下的代码。
void mediaplayer::musicplayer(CString str)
{
CStatic *pStatic=(CStatic*)GetDlgItem(AfxGetMainWnd()->GetSafeHwnd(),IDC_STATIC);
HWND h=pStatic->GetSafeHwnd();
CString op;
CString filename = str;
TCHAR buf[256];
open1.Format(filename,h,WS_CHILD);
mciSendString(op.GetBuffer(op.GetLength()),buf,sizeof(buf),NULL);
mciSendString(_T("play movie"),buf,sizeof(buf),NULL);
}
希望通过
mediaplayer mp;
CString fn =(CString)"open f:mpeg1.avi type MPEGVideo Alias movie";
mp.musicplayer(fn);
调用该函数播放多媒体文件,以上代码能正常播放视频。
接着做的时候问题来了,我这样把API封装到另外类中的目的就是为了在列表选择不同的文件时传递不同的参数给
musicplayer()这个函数来实现选择播放的功能,也就是说,我希望“f:mpeg1.avi”是一个可以变的字符串。但是我发现,我把代码改为
CString fn =(CString)"open""f:mpeg1.avi""type MPEGVideo Alias movie";的时候编译通过,但调用函数时会出错。应该怎么样把这几个字符串相连。貌似本来是char类型,我强制转为了CString。