mikrocontroller.net

Forum: PC-Programmierung Labview DLL einbinden


Autor: Bob Hulu (Firma: hinter den 7 bergen) (bob128)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi ,

ich habe folgendes Problem ich will in Labview Version 8.5 Studenten 
eine DLL einbinden zur Reihenberechnung. (c++ 2005 visual express 
edition). Ich habe also ein neues Prohekt geöffnet und beim Assistenten 
die Erstellung einer DLL ausgewählt und dann meine Formel zur Berechnung 
eingetragen (siehe screenshot) aber ich verstehe die Fehlermeldung net 
die da kommt und ausserdem nach dem Kompillieren steht im debug ordner 
keine .dll datei sondern eine .dll.embed.manifest aber die erkennt 
labview nicht an bzw ich kann beim konfigurieren und verzeichniss-angabe 
diese datei nicht auswählen er will eine reine .dll datei ich hoffe 
jemand von euch kennt sich da aus und weiß rat vielen dank im voraus

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast windows.h doppelt includiert. Das erste Mal wird es in stdafx.h 
inlcludiert und das zweite mal in deiner Source. Das wirft die Warnungen 
und vielleicht auch den Fehler.

Autor: bob128 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
ok jetzt kommt nur noch diese fehlermeldung ^^

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt es 148 Treffer in Google.


Wahrscheinlichste Ursache:

Es wurde versucht, eine einzelne Datei im Projekt zu kompilieren, ohne 
zuvor stdafx.cpp zu kompilieren. Bevor Sie eine einzelne Datei im 
Projekt kompilieren können, müssen Sie stdafx.cpp kompilieren.
http://msdn.microsoft.com/de-de/library/et4zwx34%2...

Autor: bob128 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und was kann ich dagegen tun? ich mein wie krieg ich ihn dazu das er 
zuerst stdafx.cpp zu kompilieren.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry kenne nur engl. VC++ Versionen: stdafx.cpp öffnen und unter Menü 
Build (Erstellen) Compile (Kompilieren?) auswählen und nicht Build 
(Erstellen?).

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Du hast windows.h doppelt includiert. Das erste Mal wird es in stdafx.h
> inlcludiert und das zweite mal in deiner Source. Das wirft die Warnungen
> und vielleicht auch den Fehler.

No way. Dazu sind Headerguards ja da.

Autor: LabVIEW Fox (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Frage, die ich hier aufbringen möchte, weshalb es kompliziert tun, 
wenn es auch einfach geht. Verzichte auf die Einbindung einr DLL und 
implementiere die Reihenetwicklung in LabVIEW. Dann ist alles Native und 
besser dokumentierbar, wartbar  und sogar Platformunabhängig.

Autor: Bob Hulu (Firma: hinter den 7 bergen) (bob128)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Frage kann ich dir beantworten es geht einfach darum zu üben DLL's 
in Labview einzubinden natürlich ist das einfacher es gleich in Labview 
zu tun. Aber lass dir gesagt sein das es durch das einbinden der DLL 
sehr viel schneller geht das kann man beobachten wenn man die zeit misst 
die der rechner braucht um den prozess zu verarbeiten aber nun wieder zu 
dem Problem.

Also ich hab jetzt folgendes gemacht: erstmal das microsoft visual 2005 
deinstalliert und das neue 2008 c++ express edition installiert und nun 
kam nur noch ein fehler (siehe screen) es taucht auch jetzt im debug 
ordner jetzt auch eine .dll datei auf labview jammert immer noch das er 
die funktion in der bibliothek nicht finden konnte zitat:

"Der Funktionsname konnte in der Bibliothek nicht gefunden werden. Mit 
einem Rechtsklick auf den Knoten "Aufruf externer Bibliotheken" und 
Auswahl von "Konfigurieren" können Sie den richtigen Funktionsnamen 
angeben"

im buch hieß es ebenfalls das ich eine .def datei erstellen müsste? ka 
was das ist jedenfalls hab ich eine erstellt und sie in die quelldateien 
mit eingebunden weiß nicht ob das so stimmt (siehe screen)

Autor: Bob Hulu (Firma: hinter den 7 bergen) (bob128)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
erster screen

Autor: Bob Hulu (Firma: hinter den 7 bergen) (bob128)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
zweiter screen

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Deine "screens" sind für mich sehr schlecht zu lesen.

Du hast .cpp Quellcode, d.h. du übersetzt C++ nicht C.

Möglicherweise wird die Funktion wegen dem Name Mangling von C++ nicht 
gefunden.
http://cplus.about.com/od/introductiontoprogrammin...

Das Einbinden von DLLs aus .c Dateien in Labview ist schön hier 
beschrieben:
http://zone.ni.com/devzone/cda/tut/p/id/9167

Der Punkt "Troubleshooting the Call Library Function and Your DLL" wird 
dich interessieren

Autor: Bob Hulu (Firma: hinter den 7 bergen) (bob128)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tausend Dank für den Link ich habs jetzt hinbekommen indem ich diese 
zusätzliche dll.h und extern c mit meinem prototypen programmiert habe 
labview meckert auch nicht mehr alles läuft super danke nochmal

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.