Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Programm starten trotz fehlender DLLs (zb. Spezieller Teiber)
stevensen4
myCSharp.de - Member



Dabei seit:
Beiträge: 3

Themenstarter:

Programm starten trotz fehlender DLLs (zb. Spezieller Teiber)

beantworten | zitieren | melden

Moin moin,

ich hoffe, ich bin hier in der richtigen Rubrik.

Also ich programmierer eine Programm unter Windows was unter Umständen einen Treiber für eine Spezielkamera benutzt.

Es geht aber auch ohne diese Kamera und den Treiber und da liegt das Problem.

Wenn ich die Treiber(Dlls) auf dem Rechner nicht installiere, startet mein Programm nicht. Gibt einen Weg den Fehler der fehlenden Dlls abzufangen, umd das Programm trotzdem

zu starten und ohne die Kamera und deren Treiber laufen zu lassen?
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4.388

beantworten | zitieren | melden

Hallo und willkommen,

wie greifst du denn auf die Kamera zu, d.h. welche DLLs (oder NuGet-Packages) hast du eingebunden?
private Nachricht | Beiträge des Benutzers
stevensen4
myCSharp.de - Member



Dabei seit:
Beiträge: 3

Themenstarter:

beantworten | zitieren | melden

Danke für die Antwort.

Ich hätte noch erwähnen sollen, dass ich c# und unity3d benutze.

Für den Kameratreiber gibt es einen Installer und ein Unity-Plugin und im Plugin gibts einen Verweis er auf das Installationsverzeichnis (dlls) des Treibers verweist.

Nugetpacket gibt's glaube ich nicht.

Dann gibts ein

using vrUnity
float FOV = vrUnity.Core.Intance.getFov();

Gibts nicht eine allgemeine Vorgehensweise wenn irgenwelche Dlls fehlen und wenn man sie in diesem Fall auch nicht braucht, trotzdem das Programm starten kann?
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4.388

beantworten | zitieren | melden

Wenn die nativen Treiber-DLLs per [DllImport] eingebunden sind (und anscheinend nicht dynamisch geladen werden), dann läßt sich das nicht (direkt) abfangen.

Kannst du denn auf die gesamten Unity-Plugin Methoden dann verzichten? Dann könntest du diese (anstatt fest als Verweis anzugeben), mittels Assembly.Load bzw. Assembly.LoadFile laden. Du mußt dann aber dynamisch auf die Methoden zugreifen, s. z.B. Loading DLLs at runtime in C#.
private Nachricht | Beiträge des Benutzers
Alf Ator
myCSharp.de - Member



Dabei seit:
Beiträge: 665

beantworten | zitieren | melden

Hallo stevensen4

Du könntest das Laden der Kamera-Treiber und deren Benutzung in einer eigenen Assembly unterbringen. Diese eigene Assembly kannst du dann im Bedarfsfall benutzen, oder nicht benutzen.

Gruß
Alf
private Nachricht | Beiträge des Benutzers
stevensen4
myCSharp.de - Member



Dabei seit:
Beiträge: 3

Themenstarter:

beantworten | zitieren | melden

Vielen Dank für die Antworten.

Von dieser Assembly-Sache habe ich noch gar keine Ahnung aber ich hatte schonmal mal davon gelesen und es hieß das wäre nicht tivial.

Ich befasse mich damit und werde mich sicher nochmal melden.
Danke nochmal für die Hinweise und Links!
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von stevensen4 am .
private Nachricht | Beiträge des Benutzers