ubuntuusers.de

windows dll in Programm einbinden

Status: Ungelöst | Ubuntu-Version: Ubuntu
Antworten |

Jonas_Clemens

Anmeldungsdatum:
19. Mai 2006

Beiträge: Zähle...

Hi!

Ich habe ein Stück ungewöhnliche Hardware, ein elektronisches Zeitnahme-Interface für Carrera-Bahnen... (www.racecontrol.com)
Ich habe mich schon gefreut, dass es überhaupt einen Treiber zum kostenlosen Download gibt, aber natürlich ist das nur eine Windows-dll. Die Funktionen sind gut dokumentiert, das heisst es dürfte ein leichtes sein, unter Windows ein Programm zu schreiben, was diese Hardware benutzt.

Aber wie kann ich die dll in ein ganz normales C-Programm unter linux einbinden? Funktioniert das mit Wine?

Oder muss ich etwa unter Windows programmieren, helft mir! 😉

Jonas

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

Jonas Clemens hat geschrieben:

Aber wie kann ich die dll in ein ganz normales C-Programm unter linux einbinden? Funktioniert das mit Wine?

Einfach so ohne irgendwelche Wrapper kann man dlls unter Linux nicht verwenden. Du könntest Wine probieren, allerdings ist eher unwahrscheinlich, daß der Treiber unter Wine deine Hardware erkennt und anstandlos funktioniert.

Jonas Clemens hat geschrieben:

Oder muss ich etwa unter Windows programmieren, helft mir! 😉

Wahrscheinlich schon. Allerdings wirst du das resultierende Programm unter Linux selbst mit wine nur schwer zum Laufen bringen, da Wine afaik Windowstreiber nicht direkt nutzen kann.

Ich an deiner Stelle würde einfach mal freundlich beim Hersteller anfragen, ob es auch einen Linuxtreiber gibt (wahrscheinlich nicht ☹ ) oder, falls nicht, ob man dir die Spezifikationen der Hardware zusenden könnte, um einen Linuxtreiber zu schreiben. Falls der Hersteller sich weigert, bleibt immer noch Reverse Enginieering, solange der Hersteller dies durch die Lizenz nicht verbietet. Hier wirds allerdings etwas oversized 😉 für ein kleines Stück Hardware
Zudem ist wirst du, abhängig von deiner Erfahrung, deinem Können und der Kooperationswilligkeit des Herstellers, möglicherweise eine doch einige Zeit benötigen, um einen Treiber zum Laufen zu bringen. Ob du dir das zutraust und dich da rein hängen willst, musst du selbst wissen.

Gruß
lunar

Jonas_Clemens

(Themenstarter)

Anmeldungsdatum:
19. Mai 2006

Beiträge: 9

Vielen Dank für die Antwort.

Ich werde mal ganz mutig beim Hersteller anfragen, ob die mir helfen können. Das Problem mit reverse engineering ist, dass die Kommunikation auf der Leitung verschlüsselt ist, damit eben dies nicht möglich ist. Komisch nur, dass dann ein Windows-Treiber frei zur Verfügung steht...

Ok, ich weiss Bescheid, meine Frage wurde mehr als vollständig beantwortet, danke

Jonas

hobo

Anmeldungsdatum:
18. April 2005

Beiträge: 120

Wohnort: Syke bei Bremen

Frag doch mich!!!

Willst Racecontrol mit Slotman verwenden?

Also: Racecontrol arbeitet mit der seriellen Schnittstelle. Das ist erstmal kein Problem. Ich glaube aber, der Slotman läuft unter WIne nicht. Ich hab's mal probiert, allerdings mit der alten, kostenlosen Versio 6.0.8.

Geh am besten ins Deutsche Slotcar Forum (www.dscf.de), da tummeln sich die Erfinder von Slotman, die können dir ggf. weiterhelfen.

Viel Glück,
Holger

Hello_World

Anmeldungsdatum:
13. Juni 2006

Beiträge: 3620

Sehe ich das richtig, dass das Teil an den seriellen Port angeschlossen wird? In dem Fall könnte diese dll mit irgendwelchen Wrappern auch unter WINE gehen, da Hardware am seriellen Port meist keinen Treiber benötigt. Oftmals greifen Programme direkt auf die /dev/ttyS*-Gerätedatei zu, ein Beispiel wäre z. B. scmxx, welches über den seriellen Port mit Siemens-Handys kommuniziert, ohne dass dafür ein Kernel-Treiber geladen werden müsste, man muss bloß Schreibrechte auf die Gerätedatei haben.
An deiner Stelle würde ich mal beim WINE-Projekt nachfragen wie das geht, z. B. in der mailingliste wine-devel, vielleicht bringt Dir dieser Thread ja schon was, vor allem das Tool winemaker scheint in die Richtung zu gehen. Oder Du schreibst dein Programm komplett unter Windows (vorausgesetzt Du hast Windows), kompilierst es dort und lässt dann die komplette Applikation mit WINE laufen.

Antworten |