class CallbackProgress
{
public:
virtual ~CallbackProgress() = default;
* \param progress 进度位置(0~100)
* \param information 进度信息
virtual void OnCallback(const int& progress, const char* information) = 0;
};
一个纯虚类作为回调接口,那么必然,你不可能作为对象来调用信息。
因此你将不得不在使用的地方生成一个类作为派生类来使用这个公共接口。
class CallbackProgressExtend :public CallbackProgress
{
public:
CallbackProgressExtend() {}
void OnCallback(const int& progress, const char* information)
{
//传progress和information给进度条
processDlg.ShowWindow(SW_SHOW);
::PostMessage(processDlg.GetSafeHwnd(), WM_UPDATEPROGRESS, NULL, LPARAM(&progress));
if (100 == progress)
{
processDlg.ShowWindow(SW_HIDE);
}
}
};
这样你才能实例化后正常使用这个接口。
TubeCallbackProgressExtend a;
//输出矩阵
float transfer_matrix[16];
TI_SUCCEED == tube.AllInspect(transfer_matrix, &a);