const char szDtmf[] = "0123456789*#";switch (m_iDtmf)
{
case 0: // send dtmf using H.245 UserInputIndication
{
  Acs_VoIP_H245UII h245Uii = {0};
  h245Uii.m_s8Signal = szDtmf[iDtmf];   
}
break;

解决方案 »

  1.   

    const
      szDtmf:String = '0123456789*#'; 
    ...
    var
      h245Uii: Acs_VoIP_H245UII;
    ...
    case m_iDtmf of
      0: begin
        h245Uii := (0);
        fillchar(h245Uii,sizeof(h245Uii),0);
        h245Uii.m_s8Signal := szDtmf[iDtmf+1];
      end;
    ...
      

  2.   

    const
      szDtmf:String = '0123456789*#'; 
    ...
    var
      h245Uii: Acs_VoIP_H245UII;
    ...
    case m_iDtmf of
      0: begin
        fillchar(h245Uii,sizeof(h245Uii),0);
        h245Uii.m_s8Signal := szDtmf[iDtmf+1];
      end;
    ...
      

  3.   

    int idBtnDtmf[] = {
    IDC_BUTTON_DTMF0, IDC_BUTTON_DTMF1, IDC_BUTTON_DTMF2, IDC_BUTTON_DTMF3,
    IDC_BUTTON_DTMF4, IDC_BUTTON_DTMF5, IDC_BUTTON_DTMF6, IDC_BUTTON_DTMF7,
    IDC_BUTTON_DTMF8, IDC_BUTTON_DTMF9, IDC_BUTTON_DTMFA, IDC_BUTTON_DTMFP
    }; for (int iDtmf = 0; iDtmf < sizeof(idBtnDtmf)/sizeof(int); ++iDtmf)
    {
    if (idBtn == idBtnDtmf[iDtmf])
    break;
    }
    if (iDtmf == sizeof(idBtnDtmf)/sizeof(int))
    return;在上面还有这几句
      

  4.   

    h245Uii.m_s8Signal := szDtmf[iDtmf+1];
    这句有问题m_s8Signal类型是byte类型,
    h245Uii 在C++中的结构如下:
    typedef struct
    {
    DJ_S8 m_s8String[100];
    DJ_S8 m_s8Signal;
    DJ_S8   m_Rfu[3];        
    DJ_U32 m_u32Duration;
    }Acs_VoIP_H245UII;
      

  5.   

    h245Uii.m_s8Signal := ord(szDtmf[iDtmf+1]); 
      

  6.   

    int idBtnDtmf[] = { 
    IDC_BUTTON_DTMF0, IDC_BUTTON_DTMF1, IDC_BUTTON_DTMF2, IDC_BUTTON_DTMF3, 
    IDC_BUTTON_DTMF4, IDC_BUTTON_DTMF5, IDC_BUTTON_DTMF6, IDC_BUTTON_DTMF7, 
    IDC_BUTTON_DTMF8, IDC_BUTTON_DTMF9, IDC_BUTTON_DTMFA, IDC_BUTTON_DTMFP 
    }; for (int iDtmf = 0; iDtmf < sizeof(idBtnDtmf)/sizeof(int); ++iDtmf) 

    if (idBtn == idBtnDtmf[iDtmf]) 
    break; 

    if (iDtmf == sizeof(idBtnDtmf)/sizeof(int)) 
    return; const idBtnDtmf:array [0..11] of Integer = ( 
    IDC_BUTTON_DTMF0, IDC_BUTTON_DTMF1, IDC_BUTTON_DTMF2, IDC_BUTTON_DTMF3, 
    IDC_BUTTON_DTMF4, IDC_BUTTON_DTMF5, IDC_BUTTON_DTMF6, IDC_BUTTON_DTMF7, 
    IDC_BUTTON_DTMF8, IDC_BUTTON_DTMF9, IDC_BUTTON_DTMFA, IDC_BUTTON_DTMFP 
    ); 
    var
      iDtmf: Integer;
    ...iDtmf := 0
    whil iDtmf < (sizeof(idBtnDtmf) div sizeof(int))  do 
    begin
    if (idBtn = idBtnDtmf[iDtmf]) then 
    break; 
    end;
    if (iDtmf = sizeof(idBtnDtmf) div sizeof(int)) then 
    Exit; 
      

  7.   

    const idBtnDtmf:array [0..11] of Integer = ( 
    IDC_BUTTON_DTMF0, IDC_BUTTON_DTMF1, IDC_BUTTON_DTMF2, IDC_BUTTON_DTMF3, 
    IDC_BUTTON_DTMF4, IDC_BUTTON_DTMF5, IDC_BUTTON_DTMF6, IDC_BUTTON_DTMF7, 
    IDC_BUTTON_DTMF8, IDC_BUTTON_DTMF9, IDC_BUTTON_DTMFA, IDC_BUTTON_DTMFP 
    ); 
    var
      iDtmf: Integer;
    ...iDtmf := 0
    whil iDtmf < (sizeof(idBtnDtmf) div sizeof(int))  do 
    begin
    if (idBtn = idBtnDtmf[iDtmf]) then 
    break;
    Inc(iDtmf); 
    end;
    if (iDtmf = sizeof(idBtnDtmf) div sizeof(int)) then 
    Exit;