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.


Thema geschlossen 

DLL im EXE-Modus läuft nicht



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!

02.06.2006, 16:21
Beitrag #1

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
DLL im EXE-Modus läuft nicht
Hallo Leute,

ich habe ein Problemchen mit DLL, die ich selber gebastelt habe.
Und zwar:
Ich kommuniziere über PCanUsb-Dongle mit einem externen Gerät. Peak liefert Quellcode, aus dem man sich DLL basteln kann und z.B. in LV einbinden kann. Genauso habe ich es gemacht und es funktioniert auch auf dem Rechner mit LV. Nun habe ich aus dem ganzen Projekt EXE erstellt und auf dem anderen Rechner installiert. Leider will er nicht. Er schreibt folgenede Fehlermeldungen (siehe Bilder).
1) Wo kann das Problem stecken?
2) Warum brauche ich Runtime von MS-Visual Studio (msvcr80d.dll) ?
3) Ich habe übrigens Debug-Modus für EXE aktiviert, aber es hat nichts gebracht. Was kann ich mit dem Debug-Modus alles machen?

Grüsse, Eugen


Angehängte Datei(en) Thumbnail(s)
       

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
to top
Anzeige
02.06.2006, 17:33
Beitrag #2

thomas.sandrisser Offline
LVF-SeniorMod


Beiträge: 1.298
Registriert seit: Sep 2005

xxxx
2005
EN

78759
United States
DLL im EXE-Modus läuft nicht
Waahnsinn - diese Fehlermeldung hab ich noch ueberhaupt nie gesehen :-(
Das einzige was mir an der Stelle einfaellt ist, dass du die DLL von PCanUsb-Dongle NICHT als Supported File in die EXE eingebaut hast. Sollten in der DLL Abhaengigkeiten drinnen sein, kompiliert er diese normalerweise automatisch mit (diese werden standardmaeßig im data Ordner abgelegt).

Wenn eine EXE mit der Option Debugging erstellt wird, bleibt das Blockdiagramm eines jeden VIs in der Exe erhalten, sodass vom HOST Vi aus das Blockdiagramm im Highlightmodus verfolgt werden kann.

Wenn das Debuggen und etwaige Fehler ausgemerzt sind (z.B. fehlende VIs die dynamisch aufgerufen werden, DLLs oder auch relative Pfade die nicht korrekt sind), muss die EXE unbedingt neu kompiliert werden mit dem deaktivierten Debugging Parameter.
Dadurch wird die Performance der EXE wieder gesteigert UND Sie benoetigt weniger Speicherplatz.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
to top
02.06.2006, 19:35
Beitrag #3

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
DLL im EXE-Modus läuft nicht
So habe Debug weggeklickt, die DLL ist in Supportd Files eingefügt. Trotzdem bekomme ich diese Meldungen.

Hat noch jemand Ideen?

Grüsse, Eugen

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
to top
02.06.2006, 20:56
Beitrag #4

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
DLL im EXE-Modus läuft nicht
<div align="left">
' schrieb:So habe Debug weggeklickt, die DLL ist in Supportd Files eingefügt. Trotzdem bekomme ich diese Meldungen.

Hat noch jemand Ideen?

Grüsse, Eugen
</div>
<div align="left">nicht wirklich. sieht nach einem richtigen problem aus, interessantWink

Vorweg: ich hab keine Lösung, ich hab nur ein paar Tips, was man probieren könnteSad

ich würde nun mal folgendes versuchen:
wenn du Visual Studio hast, kannst du mal versuchen eine kleine exe zu schreiben, die eine Funktion in deiner DLL aufruft um zu sehen, ob die DLL auf dem Zielsystem lauffähig ist. Zur not reicht auf VBA, aber da kann ich nur auf die MSDN verweisen, ich hab keine Ahnung, wie man DLLs in VBA aufruft, haber aber schonmal irgendwo gesehen, dass es geht. ... [Visual C++/C# 2005 Express gibts ja für lau ...Wink]

ich würde mir mal eine "Dummy DLL" bauen, mit den gleichen Funktionsaufrufen, etc, die nix weiter macht, als leere Methoden aufzurufen. Mit der DLL würde ich dann mal auf dem Zielsystem testen, ob der Fehler immer noch auftritt.

Wenn ich das jetzt richtig verstehe, hast du die DLL ja selber gebaut. Gab's dabei irgendwelche Warnungen?

Generell, selber eine DLL bauen und mit LabVIEW laufen lassen ist immer schwierig. Man hat ja immer 2 Fehlerquellen: LabVIEW oder die DLL, wo fängt man an zu suchen?

Fehlerquelle Nr. 1, die mir einfällt:
die meistenr Treiber-Hersteller haben ihre Treiber mal irgendwann zu Zeiten von LabVIEw 5.1 entwickelt und speichern einfach nur die alten VIs mit der aktuellen LV-Version ab, und verkaufen das dann als "aktuelle" Treiber ...
Wenn nun die DLL auf Speicher von LabVIEW zugreift, und der Quellcode entsprechend alt ist, dann ist es gut möglich, dass der Hund da begraben liegt. In der Zwischenzeit hat sich das Speicher-Modell von LV mehrfach geändert ...

Man erkennt das u.a. an folgenden Code-Zeilen</div>

[code][left]#include "extcode.h"

// zum Beispiel
typedef struct {

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
to top
13.06.2006, 16:23
Beitrag #5

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
DLL im EXE-Modus läuft nicht
Also Leute,

ich habe das Problem gelöst.Big GrinBig GrinBig Grin

Es liegt an der dynamischen Einbindung der RunTime von MS Visual Studio. Die RunTime soll bei der Erstellung der DLL statisch gelinkt werden!!!, sonst ist man von der Version der MS Visual Studio abhängig und die msvcr80d.dll soll ins System32-Verzeichnis. Danach Systemstart, also alles zu umständlich gemacht.

Wenn man aber die RunTime statisch dazulinkt (und nicht dynamisch, wie im PDF-Dokument "Using external code"!!!), dann ist die DLL zwar ein wenig grösser, aber man hat keine weiteren Probleme.

Das gleiche gilt nicht nur für LabVIEW, sondern für andere Entwicklungsumgebungen, in denen man fremde DLLs einbindet.

Grüsse, Eugen

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
to top
Thema geschlossen 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  RS-232 Abfrage läuft nicht als sub vi in .exe nomis 4 11.084 26.04.2017 11:36
Letzter Beitrag: macmarvin
  Exe läuft nicht auf anderem Rechner hifigott 8 11.929 04.10.2010 11:29
Letzter Beitrag: hifigott
  ExeDatei läuft nicht Daerstofer 1 4.261 07.07.2010 08:08
Letzter Beitrag: Achim
  VISA Schnittstelle läuft nicht freddyka 5 7.137 23.06.2010 12:45
Letzter Beitrag: freddyka
  erzeugte Exe läuft nicht unter Win7 (Visa-Problem) T_T 6 7.969 12.02.2010 07:41
Letzter Beitrag: Gecko80
  exe läuft nicht neu09 2 5.017 01.10.2009 14:04
Letzter Beitrag: neu09

Gehe zu: