INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Error 1097



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

15.06.2016, 09:15 (Dieser Beitrag wurde zuletzt bearbeitet: 15.06.2016 09:18 von katanad.)
Beitrag #1

katanad Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Jun 2016

2011
2015
EN

70569
Deutschland
Error 1097
Hi zusammen,

ich bin neu mit Labview, insbesondere mit DLL einbinden. Ich möchte jetzt ein LED-Device mit Labview kontrollieren. Ein Kollege von mir hat ein Wrapper mit Visual Studio 2012 geschrieben.

Ich habe ein Problem mit eine Funktion darin.

Die c code sind so
API *char getdevice(int devNo)
{
char *selectdevice;
selectdevice = getselectdevice(devNo);
return selectdevice;
}
Funktion getselectdevice(devNo) ist c++ Funktion, um die device zu kommunizieren. Parameter devNo ist für wie viele Devices verbunden sind.(Bei mir nur ein)

Ich benutze Lv2011 und habe die DLL so konfiguriert.
Thread: run in any Thread
Calling convention: C

Parameter
return type: String C String Pointer
devNo: Numeric signed 32-bit Integer

So funktioniert nicht.
Dann habe ich das Verfahren von der untern Link versucht(mit getValuebyPointer und return type zu signed pointer-sized integer geändert) leider kriege ich immer die Errorcode 1097
https://decibel.ni.com/content/docs/DOC-9091


Danke im Voraus
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.06.2016, 09:47 (Dieser Beitrag wurde zuletzt bearbeitet: 15.06.2016 09:48 von rolfk.)
Beitrag #2

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Error 1097
(15.06.2016 09:15 )katanad schrieb:  Hi zusammen,

ich bin neu mit Labview, insbesondere mit DLL einbinden. Ich möchte jetzt ein LED-Device mit Labview kontrollieren. Ein Kollege von mir hat ein Wrapper mit Visual Studio 2012 geschrieben.

Ich habe ein Problem mit eine Funktion darin.

Die c code sind so
API *char getdevice(int devNo)
{
char *selectdevice;
selectdevice = getselectdevice(devNo);
return selectdevice;
}
Funktion getselectdevice(devNo) ist c++ Funktion, um die device zu kommunizieren. Parameter devNo ist für wie viele Devices verbunden sind.(Bei mir nur ein)

Ich benutze Lv2011 und habe die DLL so konfiguriert.
Thread: run in any Thread
Calling convention: C

Parameter
return type: String C String Pointer
devNo: Numeric signed 32-bit Integer

So funktioniert nicht.
Dann habe ich das Verfahren von der untern Link versucht(mit getValuebyPointer und return type zu signed pointer-sized integer geändert) leider kriege ich immer die Errorcode 1097
https://decibel.ni.com/content/docs/DOC-9091


Danke im Voraus

Also

Code:
API *char getdevice(int devNo)

sollte wohl

Code:
API char* getdevice(int devNo)

sein, sonst müsste der C Compiler protestieren. Und wenn das so ist, dann sollte Deine ursprüngliche Parameterkonfiguration funktionieren.

Und dann ist natürlich die ganz grosse Preisfrage: wie ist API wohl definiert in den entsprechenden Headern??????? Glas1 Glas1

Könnte das soetwas wie __cdecl oder __stdcall enthalten? Dann müsste man in der Call Library Node natürlich die Calling Convention entsprechend anpassen.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.06.2016, 11:31
Beitrag #3

katanad Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Jun 2016

2011
2015
EN

70569
Deutschland
RE: Error 1097
(15.06.2016 09:47 )rolfk schrieb:  Also

Code:
API *char getdevice(int devNo)

sollte wohl

Code:
API char* getdevice(int devNo)

sein, sonst müsste der C Compiler protestieren. Und wenn das so ist, dann sollte Deine ursprüngliche Parameterkonfiguration funktionieren.

Und dann ist natürlich die ganz grosse Preisfrage: wie ist API wohl definiert in den entsprechenden Headern??????? Glas1 Glas1

Könnte das soetwas wie __cdecl oder __stdcall enthalten? Dann müsste man in der Call Library Node natürlich die Calling Convention entsprechend anpassen.

*char und char* ist mein Fehler. In Code steht char*

Und in Header Datei steht sowas

#ifdef WRAPPER_EXPORTS
#define API __declspec(dllexport)
#else
#define API __declspec(dllimport)
#endif
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Fehlercode 1097 beim Aufrufen einer C++ DLL Dr. Nuke 11 3.149 22.07.2022 22:39
Letzter Beitrag: Martin.Henz
  Picoscope Err 1097 ares2013 10 9.444 26.12.2020 14:03
Letzter Beitrag: hansi9990
  Fehler 1097 beim Übergeben von Arrays Flemmy 4 8.536 22.10.2017 21:07
Letzter Beitrag: rolfk
  Aufruf externe DLL Fehler 1097 Lars_Tragl 1 8.482 11.08.2016 16:13
Letzter Beitrag: Freddy
  DLL Fehler 1097 M.VI 1 5.815 02.12.2014 08:38
Letzter Beitrag: GerdW
  Fehler 1097 bei Knoten zum Aufruf externer Bibliotheken in CLF-Knoten.vi KingLui 2 6.939 16.09.2014 13:47
Letzter Beitrag: KingLui

Gehe zu: