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;
{
case 0: // send dtmf using H.245 UserInputIndication
{
Acs_VoIP_H245UII h245Uii = {0};
h245Uii.m_s8Signal = szDtmf[iDtmf];
}
break;
解决方案 »
- 基于数据库处理的系统中,采用什么解决方案最好?
- 怎么解决窗体TForm和框架TFrame在拉伸、最大化、最小化、恢复、OnResize事件时,窗体及控件闪烁的问题?
- 关于treeview问题,为什么int时可以运行,但为什么char时就不可以运行了呢?
- delphi7如何实现与vc中的如此功能???
- 简单问题,郁闷~~~~~,各位达人帮帮忙啊
- 如何用程序设置打印机的属性?
- ADO数据库更新的错误
- Application.messagebox除了MB_ICONERROR,MB_ICONQUESTION之外,还有哪些?(带图标的)
- 没分了,请大家帮忙!
- 难道是内存不足?
- 请教:为何我的程序手动运行和修改注册表自动运行结果不一样?自动运行的时候功能全没了。
- 僵哥,我想请问下这个函数问题吗,如果用户同时连接会不会导致什么问题。
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;
...
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;
...
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;在上面还有这几句
这句有问题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;
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;
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;