CodeBlocks, C ++, компилятор mingw-w64, Windows 10, ошибки: неопределенная ссылка на DAQmxCreateTask и т. Д. - PullRequest
0 голосов
/ 08 ноября 2019

Интересно, кто-нибудь может мне помочь? Я программирую приложение NI-DAQmx на C ++, используя CodeBlocks WxWidgets.

Я использую последнюю версию компилятора mingw-w64 и Windows 10.

При компиляции яПолучение неопределенных ошибок ссылок для операторов DAQmx___:

`DAQmxCreateTask ',

' DAQmxClearTask ',

' DAQmxCreateAIVoltageChan ',

и других.

Я включил в проект файлы NIDAQmx.h, NIDAQmx.lib. Я искал несколько дней и читал сообщения об этой проблеме, читал о файлах-обертках и хакерских файлах в NIDAQmx.h, но не могу найти ничего, что могло бы помочь.

Фрагмент кода:

#include <math.h>
#include <limits>
#include "NIDAQmx.h"


int PxiError = 0;
TaskHandle  taskHandle=0;
float64     data[32];
char        errBuff[2048]={'\0'};
int32       readstuff;

#define DAQmxErrChk(functionCall) if( DAQmxFailed(PxiError=(functionCall)) ) goto Error; else

double AnalogInputs(unsigned int t)
{
   // DAQmx Configure Code
    DAQmxErrChk (DAQmxCreateTask("",&taskHandle));
    DAQmxErrChk (DAQmxCreateAIVoltageChan(taskHandle,"PXI1Slot4/ai0:31","Voltage",DAQmx_Val_Cfg_Default, -10.0, 10.0, DAQmx_Val_Volts, NULL));

    // DAQmx Start Code
    DAQmxErrChk (DAQmxStartTask(taskHandle));

    // DAQmx Read Code

    //(TaskHandle taskHandle, int32 numSampsPerChan, float64 timeout, bool32 fillMode, float64 readArray[], uInt32 arraySizeInSamps, int32 *sampsPerChanRead, bool32 *reserved);
    DAQmxErrChk (DAQmxReadAnalogF64(taskHandle,1,10.0,DAQmx_Val_GroupByChannel,data,32,&readstuff,NULL));

    //Error handling
    Error:
    if( DAQmxFailed(PxiError) )
        DAQmxGetExtendedErrorInfo(errBuff,2048);

    if( taskHandle!=0 ) {
        // DAQmx Stop Code
        DAQmxStopTask(taskHandle);
        DAQmxClearTask(taskHandle);
    }
}

Буду признателен за любой совет,

Спасибо,

Пол

...