Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
Delphi 12 Athens
|
Re: Typdeklarationen in C und Delphi
24. Mär 2009, 21:36
Zitat von messie:
Aus
Code:
DAQmxReadAnalogF64(TaskHandle taskHandle, int32 numSampsPerChan, float64 timeout, bool32 fillMode, float64 readArray[], uInt32 arraySizeInSamps, int32 *sampsPerChanRead, bool32 *reserved);
habe ich
Delphi-Quellcode:
function DAQmxReadAnalogF64(taskHandle: PTaskHandle;
numSampsPerChan: INT32;timeout: FLOAT64;fillMode: BOOL32;var readArray: array of double;arraySizeInSamps: UINT32;var sampsPerChanRead: INT32;var reserved: BOOL32): INT32 cdecl
gemacht. Beim Aufruf
DAQmxReadAnalogF64(TaskHandle,1000,10.0,DAQmx_Val_GroupByChannel,data,1000,read,nil);
bekomme ich aber die Meldung "die Typen der tatsächlichen und formalen Parameter müssen übereinstimmen", da finde ich den Fehler nicht. Ich vermute mal, dass readArray[] und array of double nicht kompatibel sind weil c ja eigentlich keine offenen arrays kennt.
Da hast du vollkommen Recht! Aber bei dem Float-Array kannst du mogeln (machen die C-Programmierer dauernd):
Delphi-Quellcode:
function DAQmxReadAnalogF64(taskHandle: PTaskHandle;
numSampsPerChan: INT32;
timeout: FLOAT64;
fillMode: BOOL32;
var readArray: FLOAT64;
arraySizeInSamps: UINT32;
var sampsPerChanRead: INT32;
reserved: Pointer): INT32 cdecl;
...
DAQmxReadAnalogF64(TaskHandle, 1000, 10.0, DAQmx_Val_GroupByChannel, data[0], 1000, read, nil);
...
Uwe Raabe
|
|
Zitat
|