Hallo Kasi,
Danke für die Antwort.
Ich hab mich heute nochmal drangesetzt und erstmal versucht die Elemente eines einfachen Array durch nen c-File zu verändern und diese dann mit LabView wieder einzulesen.
Leider komm ich mit der Datenübergabe noch nicht so richtig weiter.
Hier mein C-Code:
.cpp:
#include "stdafx.h"
#include "Wert.h"
#include <iostream>
using namespace std;
// Dies ist das Beispiel einer exportierten Funktion.
WERT_API int* summieren(int n)
{
int *s = new int[3];
s[0] = n;
s[1] = n+1;
s[2] = 2;
return s;
}
.h:
#ifdef WERT_EXPORTS
#define WERT_API __declspec(dllexport)
#else
#define WERT_API __declspec(dllimport)
#endif
struct liste{
int a;
int b;
int c;
};
// Diese Klasse wird aus Wert.dll exportiert.
class WERT_API CWert {
public:
CWert(void);
// TODO: Hier die Methoden hinzufügen.
};
extern WERT_API int nWert;
WERT_API int* summieren(int n);
Hab mittels VisualStudio als Win32 Anwendung ne DLL erzeugt die ich über den "Knoten zum Aufruf externe Bibliotheken" aufrufe:
1. Problem: Als Aufrufkonvention habe ich stdcall(WINAPI) eingestellt - beim Ausführen spuckt mir Labview nen "ERROR 1097" aus mit dem ich aber nichts anfangen kann - Als Rückgabewert habe ich Nummerisch mit "Vorzeichenbehafteter Zeigergroßer Integer" gewählt.
2. bekomme ich es leider nicht hin mit Hilfe des zurückgegebenen Pointers auf das neue Array zuzugreifen:
Hier mal mein Modell:
Die Parametrierung von dem MoveBlock habe ich von hier:
https://decibel.ni.com/content/docs/DOC-9091
Hoffe hier kann mir einer weiterhelfen - komme mit den Datentypen anscheinend irgendwie nicht so richtig klar...
Vielen Dank für eure Hilfe