CString str=dlg.GetFilePath();
OpenParms.lpstrElementName=str;
在一个函数体中吗?

解决方案 »

  1.   

    试试:
    MCI_OPEN_PARMS OpenParms;
    OpenParms.lpstrElementName=LPCSTR)str;
      

  2.   

    试试:
    MCI_OPEN_PARMS OpenParms;
    OpenParms.lpstrElementName=(LPCSTR)str;
      

  3.   

    CFileDialog fdlg(true,"wav",".wav");//,NULL ,NULL,NULL);
    CString str;
    if(IDOK==fdlg.DoModal())
    {
    str=fdlg.GetPathName();
    }
    int n=str.GetLength();
    for(int m=0;m<n;m++)
    {
    if(92==str.GetAt(m))
    {
    str.Insert(m,92);
    m++;
    }
    }
    MCI_OPEN_PARMS OpenParms;
    OpenParms.lpstrDeviceType ="waveaudio";//MIDI类型
    OpenParms.lpstrElementName = (LPCSTR)str;
    这是源代码,加了(LPCSTR),(LPSTR),(LPCTSTR)等都没用.
      

  4.   

    do like it:
        CString str=dlg.GetFilePath();
        char * cp = str.GetBuffer(str.GetLength());
        MCI_OPEN_PARMS OpenParms;
        OpenParms.lpstrElementName=cp;
        str.ReleaseBuffer();保证可以
      

  5.   

        CString str=dlg.GetFilePath();    MCI_OPEN_PARMS OpenParms;
        strcpy(OpenParms.lpstrElementName,(LPCSTR)str);
          
      

  6.   

        CFileDialog fdlg(true,"wav",".wav");//,NULL ,NULL,NULL);
        CString str;
        if(IDOK==fdlg.DoModal())
        {
            str=fdlg.GetPathName();
        }
        MCI_OPEN_PARMS OpenParms;
        OpenParms.lpstrDeviceType ="waveaudio";//MIDI类型
        OpenParms.lpstrElementName=(LPCSTR)str;这样不可以么????那么LPSTR lpstr = str.GetBuffer();
    OpenParms.lpstrElementName=lpstr;
      

  7.   

    不可以????????taosi(桃子) 111222() zero100()
      

  8.   

    to lhmbuaa(大饼) 
    看了你的代码,我明白了
    应该像这样:
    CFileDialog fdlg(true,"wav",".wav");//,NULL ,NULL,NULL);
        CString str;
        if(IDOK==fdlg.DoModal())
        {
            str=fdlg.GetPathName();
        }
        int n=str.GetLength();
        MCI_OPEN_PARMS OpenParms;
        OpenParms.lpstrDeviceType ="waveaudio";//MIDI类型
        OpenParms.lpstrElementName = (LPCSTR)str;
    就可以了去掉了一段你的代码,因为他是多余的
      

  9.   

    to lhmbuaa(大饼) 
    看了你的代码,我明白了
    应该像这样:
    CFileDialog fdlg(true,"wav",".wav");//,NULL ,NULL,NULL);
        CString str;
        if(IDOK==fdlg.DoModal())
        {
            str=fdlg.GetPathName();
        }
        int n=str.GetLength();
        MCI_OPEN_PARMS OpenParms;
        OpenParms.lpstrDeviceType ="waveaudio";//MIDI类型
        OpenParms.lpstrElementName = str.GetBuffer(str.GetLength());
    就可以了去掉了一段你的代码,因为他是多余的
      

  10.   

    成功了  
    为什么我冥思苦想为它加'\'的代码却没有用,谢谢zzok1(),回答我的问题马上给你家分.
      

  11.   

    HEHE,看明白了。调试时是:"d:\\lhm\\bg2.wav"是错误的,
    应该是"d:\lhm\bg2.wav"
    中间插入"\"是错误的。