Den I/O-Warroir 40 kann man ja unter MAC OS richtig schön einfach programmieren! Unter Windows ist das allerdings nicht so einfach, da man hier ja unter C++ prog. muss. Gibt es eine Ebene auf der man Programmieren kann und danach den Source Code sowohl unter Windows als auch unter MACOS zu laufen zu bringen oder muss ich mir alle Definitionen der iowkit.h so umschrieben, dass sie später kompatibel zur IOWarriorlib.h unter MAC OS kompatiebel sind??
Wäre ein echter "Universal" fortschritt
Plattformkompatibilität Windows /MacOS
Moderator: Guido Körber
-
- Site Admin
- Posts: 2856
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact:
Re: Plattformkompatibilität Windows /MacOS
Also erstens kann man die DLL unter Windows von beliebigen Sprachen aus benutzen, zweitens haben wir auch Unterstützung für Delphi mit dabei.
Windows und MacOS behandeln den USB ziemlich unterschiedlich, so dass es nicht ganz einfach sein wird da eine einheitliche Lösung zu finden. Und nur die .h Files zu ändern fürht nur zu Nichtfunktion, dazu muss dann auch die jeweilige Lib entsprechend angepasst werden.
Windows und MacOS behandeln den USB ziemlich unterschiedlich, so dass es nicht ganz einfach sein wird da eine einheitliche Lösung zu finden. Und nur die .h Files zu ändern fürht nur zu Nichtfunktion, dazu muss dann auch die jeweilige Lib entsprechend angepasst werden.
Dass die Plattformen unterschiedlich sind und die hardwarenahe Ansteuerung grundsätzlich anders funktioniert ist OK. Aber das heisst doch nicht, dass die höheren Ebenen auch unterschiedlich sein müssen!?
Sowohl die Mac als auch die Windows Umgebung für C sieht vor, dass man erst ein Init macht, die Anzahl der verbundenen IOwarriors zurück bekommt, dann irgendeine Integer-Variable mit dem Bitmuster füllt, das man gerne hätte und dann write(buffer) abwirft. Wenn man fertig ist, macht man ein close.
Die Hardwarenahen Systemaufrufe werden ja sowohl von der (Mac) IOWarriorLib.h als auch von der (Win) iowkit.h nach oben hin abgeschirmt und der Benutzer hat nichts mehr damit zu tun... Auf Benutzerebene sind die Aufrufe sehr ähnlich und die Betriebssystem-spezifischen Eigenschaften schon längst versteckt.
Ich finde, die Frage ist berechtigt, warum nicht auf beiden Plattformen die gleichen Namen für die Befehle genommen wurden. Und ich halte es durchaus für denkbar, dass man durch eine sehr simple eigene Header-Datei die Aufrufe der einen Lib in die Aufrufe der anderen Lib überführen könnte... Das ist natürlich ein saublöder doppelter Boden, wenn man die Libs gleich hätte aufeinander abstimmen können...
Sowohl die Mac als auch die Windows Umgebung für C sieht vor, dass man erst ein Init macht, die Anzahl der verbundenen IOwarriors zurück bekommt, dann irgendeine Integer-Variable mit dem Bitmuster füllt, das man gerne hätte und dann write(buffer) abwirft. Wenn man fertig ist, macht man ein close.
Die Hardwarenahen Systemaufrufe werden ja sowohl von der (Mac) IOWarriorLib.h als auch von der (Win) iowkit.h nach oben hin abgeschirmt und der Benutzer hat nichts mehr damit zu tun... Auf Benutzerebene sind die Aufrufe sehr ähnlich und die Betriebssystem-spezifischen Eigenschaften schon längst versteckt.
Ich finde, die Frage ist berechtigt, warum nicht auf beiden Plattformen die gleichen Namen für die Befehle genommen wurden. Und ich halte es durchaus für denkbar, dass man durch eine sehr simple eigene Header-Datei die Aufrufe der einen Lib in die Aufrufe der anderen Lib überführen könnte... Das ist natürlich ein saublöder doppelter Boden, wenn man die Libs gleich hätte aufeinander abstimmen können...