typedef BOOL (*OPMDIALOGPROC)(void);类型调试

arc_star 2013-07-01 08:37:50
请高手看一下面的代码调试
STDMETHODIMP CTextDlgProp::GetCustomDialogProc (OPMDIALOGPROC *pDialogProc) {
/*if ( pDialogProc == NULL )
return (E_POINTER) ;*/
// TODO: add your code here
*pDialogProc = rPropCallBack;

return (S_OK) ;
//return (E_NOTIMPL) ;
}

BOOL CTextDlgProp::rPropCallBack(void)
{
return FALSE;
}


其中 pDialogProc 的解释是
Input dialog procedure; defined as
typedef BOOL (*OPMDIALOGPROC)(void);

sdk的原文如下
virtual HRESULT

STDMETHODCALLTYPE GetCustomDialogProc(

[out] OPMDIALOGPROC* pDialogProc) = 0;

pDialogProc Input dialog procedure; defined as
typedef BOOL (*OPMDIALOGPROC)(void);

If implemented, the Properties window code will call the function passed back here. If the return value of the OPMDIALOGPROC is TRUE, changes to the property will be updated.



但是执行的时候总是出现如下错误,error C3867: 'CTextDlgProp::rPropCallBack': function call missing argument list; use '&CTextDlgProp::rPropCallBack' to create a pointer to member
请大家帮我看看是怎么错的。如何调试。


...全文
1328 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
树哥 2013-09-28
  • 打赏
  • 举报
回复
sdk的原文如下 virtual HRESULT STDMETHODCALLTYPE GetCustomDialogProc( [out] OPMDIALOGPROC* pDialogProc) = 0; pDialogProc Input dialog procedure; defined as typedef BOOL (*OPMDIALOGPROC)(void); =============================================== 这里是默认的函数调用约束__cdecl 类的函数默认调用约束是__thiscall 所以你应该使用类型静态函数,如 static BOOL CTextDlgProp::rPropCallBack(void) { return FALSE; }
真相重于对错 2013-07-01
  • 打赏
  • 举报
回复
你那个是非静态类成员函数,和那个函数指针要求不一致,因为类成员函数,编译器会自动添加一个this参数 改成静态的或者用全局函数
arc_star 2013-07-01
  • 打赏
  • 举报
回复
补充一下,还有下面的错误 error C2440: '=' : cannot convert from 'BOOL (__thiscall CTextDlgProp::* )(void)' to 'OPMDIALOGPROC'
内容概要:本文提出了一种基于加权稀疏矩阵恢复与加速交替方向乘子法(ADMM)的单通道盲解混响算法,并提供了完整的Matlab代码实现。该方法旨在从仅有的单路接收信号中有效分离出原始声源信号,克服传统多通道方法对硬件的依赖。核心技术结合了信号在时频域的稀疏性先验,通过构建加权机制以增强稀疏矩阵恢复的准确性,并引入加速ADMM算法来优化求解过程,显著提升了算法的收敛速度与计算效率。该算法特别适用于麦克风阵列受限或无法部署的复杂声学环境,能够有效抑制混响干扰,从而显著提升语音信号的清晰度与后续语音识别系统的性能。; 适合人群:具备扎实的数字信号处理、凸优化理论及稀疏表示基础,从事音频信号处理、语音增强、盲源分离或相关领域研究与开发工作的研究生、科研人员及工程技术人员。; 使用场景及目标:①解决单麦克风场景下的语音混响去除难题,提升语音通信质量;②应用于智能助听器、车载语音系统、远程视频会议、人机交互等存在严重混响的实际应用场景;③为盲解卷积、稀疏信号恢复等领域的研究提供一种高效的算法实现范例与优化思路。; 阅读建议:建议读者在深入理解信号稀疏性、ADMM优化框架等理论基础上,结合所提供的Matlab代码进行实践,重点分析加权策略的设计原理及其对恢复性能的影响,并通过调整正则化参数、权重因子等关键变量,探究其在不同混响强度和噪声条件下的鲁棒性与泛化能力。

7,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧