Hallo,
ich habe eine leider sehr schlecht dokumentierte DLL vorliegen, bei der ich bei einem Funktionsaufruf nicht weiterkomme und hoffe, dass mir hier jemand auf die Sprünge helfen kann (bin leider nicht so firm in C). Aus der DLL-Dokumentation:
Code:
PositionerCheck
Determines number of connected positioners and their respective hardware ids.
Parameter
Return value [out] Number of available positioners.
PositionerInfo [out] Array of structure PositionerInfo. It contains the hardware id for unlocked devices.
Connected devices are marked as locked.
Ist natürlich sehr vielsagend... darum mal weiter in der Dokumentation gewühlt und das folgende in der .h-Datei gefunden:
Code:
struct PositionerInfo{
int id;
bool locked;
};
NCB_API Int32 PositionerCheck( PositionerInfo** posInfo );
Sieht für mich (in LabView-Terminologie) nach einem Array of Cluster aus - aber wie übergibt man so etwas an eine DLL?
Bei dem Gerät war auch ein *hust* LabView-Treiber dabei, der nichts weiter als eine Library der DLL-Aufrufe beinhaltete. Leider sieht dieser Treiber sehr nach "mit der heissen Nadel gestrickt" aus: Ich habe da schon (bei anderen Aufrufen) einige gravierende Fehler entdeckt, so dass ich denke, dass die Implementierung dieses Funktionsaufrufes ebenfalls falsch ist (siehe Bild unten). Dort wird ja nur 1 Cluster übergeben, was ja anscheinend der oben aufgeführten Dokumentation widerspricht.
Jemand eine Idee, was nun richtig ist?