这是在c
环境中实施c++
功能的问题。
NI开发了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);
我的问题是:如何实现能够被此事件触发的类成员函数?我想象一个函数强制转换或类似的方式,但我不知道c
和c++
来解决这个问题。
实现此功能非常重要,以便我的类知道采集任务何时结束,并释放设备以供其他实例使用。