Laden...

Programm starten trotz fehlender DLLs (zb. Spezieller Teiber)

Erstellt von stevensen4 vor einem Jahr Letzter Beitrag vor einem Jahr 570 Views
S
stevensen4 Themenstarter:in
5 Beiträge seit 2022
vor einem Jahr
Programm starten trotz fehlender DLLs (zb. Spezieller Teiber)

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?

4.939 Beiträge seit 2008
vor einem Jahr

Hallo und willkommen,

wie greifst du denn auf die Kamera zu, d.h. welche DLLs (oder NuGet-Packages) hast du eingebunden?

S
stevensen4 Themenstarter:in
5 Beiträge seit 2022
vor einem Jahr

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?

4.939 Beiträge seit 2008
vor einem Jahr

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#.

A
764 Beiträge seit 2007
vor einem Jahr

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

S
stevensen4 Themenstarter:in
5 Beiträge seit 2022
vor einem Jahr

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!