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
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.
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%28VS.80%29.aspx
und was kann ich dagegen tun? ich mein wie krieg ich ihn dazu das er zuerst stdafx.cpp zu kompilieren.
Sorry kenne nur engl. VC++ Versionen: stdafx.cpp öffnen und unter Menü Build (Erstellen) Compile (Kompilieren?) auswählen und nicht Build (Erstellen?).
> 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.
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.
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)
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/introductiontoprogramming/a/conventions_2.htm 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
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.