Moin,
ich versuche seit einigen Tagen, ein Messgerät von National Instruments unter Delphi zum Laufen zu bringen. Ich habe eine Headerdatei und eine c-lib, die per
OLE auf die tatsächliche
dll zugreift. Technisch gesehen ziemlicher Unsinn weil zu langsam.
Meine aktuelle Frage: ich würde gerne aus dieser Deklaration (stellvertretend für einige hundert) einen Delphi-Aufruf machen:
Code:
int32 __CFUNC DAQmxCreateTask (const char taskName[], TaskHandle *taskHandle);
Das sieht dann bei mir im Prinzip so aus:
function DAQmxCreateTask(const taskName : string; var taskHandle : TTASKHANDLE) : int32; external 'NICAIU.DLL';
Das mit dem string wird natürlich nicht klappen. Array of pChar braucht eine feste Länge. PChar(string) geht in der Deklaration nicht.
Gibt es eine Möglichkeit, einen nullterminierten string als Typ zu deklarieren?
Die Basis der Übersetzungen kommt aus Dr. Bob's Tool, was doch ziemlich gestolpert ist. National Instruments gibt eine
pas-Datei heraus, die vergleichbar ist und auch voller Fehler steckt (sieht auch automatisch übersetzt aus - Delphi wird von NI nicht unterstützt). Die wollen ja auch ihre überteuerten Labview-Lizenzen verkaufen.
Dabei haben sie leider die Performance vergessen. Das Problem wird sicher noch mehr Fragen aufwerfen...
Danke, Messie