1

这是在环境中实现c功能的c++问题。

National Instruments 开发了一个NIDAQmx.h头文件,其中包含c. 我已经成功地在一个c++类中使用它们的功能来控制一个采集设备(cDAQ-9174)。但是它们提供的功能之一是由设备上的事件触发的回调函数。

c是我想实现的功能c++


int32 CVICALLBACK DoneCallback(TaskHandle taskHandle, int32 status, void *callbackData){
    int32   error=0;
    char    errBuff[2048]={'\0'};

    // Check to see if an error stopped the task.
    DAQmxErrChk (status);

Error:
    if( DAQmxFailed(error) ) {
        DAQmxGetExtendedErrorInfo(errBuff,2048);
        DAQmxClearTask(taskHandle);
        printf("DAQmx Error: %s\n",errBuff);
    }
    return 0;
}

事件处理程序通过函数注册到设备:

DAQmxRegisterDoneEvent(taskHandle,0,DoneCallback,NULL);

我的问题是:如何实现能够被此事件触发的类成员函数?我想象一个函数转换或某种类似的方式,但我对它的了解还不够,cc++无法弄清楚。

实现此功能非常重要,这样我的班级才能知道采集任务何时结束并释放设备以供其他实例使用。

4

0 回答 0