Win-Linux Anwendungen



  • Hi

    Überall höhre ich, dass wenn man Windows rogramme unter Linux nur mit emulatoren oder ähnlichem zum laufen bringen kann.

    Das kommt mir irgendwie komisch vor denn für Linux gibt es ja auch so
    was wie die WinApi(weiss jetzt nicht wie das dort heisst)
    Jetzt müsste man doch nur geeignete Librarys erstellen die die
    Windows Funktionen quasi auf die Linux Funktionen umleiten.

    Is das korrekt?
    Und wenn ja gibt es sowas?

    Bei dem Verfahren gegen M$ hat sich so steht das zumindest in der Zeitung.
    Microsoft dazu verpflichtet seine Office Anwendungen von Windows Abzukoppeln.
    Heisst das, das sie auch unter andren Bestribessystemen laufen?

    danke



  • eine trennung vom betriebssystem (z.b. ie und office von windows) heist nur, dass windows ohne ie und office funktioniert. anders herum nicht.
    sowas was du meinst mit gemeinsamer api, gibts schon im ansatz: qt. das musst zwar noch auf dem jeweiligen system kompilieren is aber fast unabhängig. das auslesen der ganzen api calls etc macht ja wine. aber so, dass es auf beiden die gleichen calls gibt wird glaub ich nie sein. ganz einfach aus dem grund, weil die beiden parteien kaum aufeinander zu gehen werden und zum anderen weil winapi was [altes] fixes für windows ist und es für linux verschiedene sachen gibt (gtk - qt etc). und wiederum das ganze umschreiben von den jeweiligen apis auf einen gemeinsamen nenner. warum dann überhaupt noch verschiedene apis?



  • Hi

    Danke erstmal für deine Antwort.
    Gibt es empfehlenswerte Seiten über QT bzw. Wine?
    Windows läuft doch eh ohne IE oder Office 😕



  • @<Hubert>
    Nein, Windows läuft nicht ohne IE, da der IE komplett in das System integriert ist, darum ging es ja in dem 1. Kartell Verfahren.

    Ich hab mal an einer Win2Unix Lib gearbeitet, die die WinAPI auf POSIX Funktionen umbaut, aber da ich die Curses für die Konsolen Funktionen genommen habe, die man nicht mit dem normalen C I/O kopeln kann, gab ich das Projekt auf. Ich will das bald wieder über die termios Library neu schreiben, wenn ich ein paar Mitstreiter finde (hab selber nie wirklich WinAPI programmiert und nur ein Buch darüber mal gekauft, bin dann aber rechtzeitig nach Unix umgesprungen ;)).

    MS Office läuft übrigens mittlerweile auf Linux, mit einer speziellen Wine Version http://www.codeweavers.com/home/ die aber Geld kostet

    @Korbinian
    GTK und QT sind ja nur Wrapper für die X-Lib (QT auch noch für andere Systemfunktionen), dafür existieren ja auch Windos Portierungen. Das es für beide Systeme gleiche Systemcalls gibt, ist so gut wie ausgeschlossen, da Linux ja kein freier Windows Ersatz sein will, sondern ein eigenes Unix ähnliches OS ist (vielleicht nähert sich Windows ja Unix an, wenn die noch mehr FreeBSD Code klauen als bisher ;))



  • Original erstellt von <Hubert>:
    **
    Gibt es empfehlenswerte Seiten über QT bzw. Wine?**

    QT != Wine ! (falls du das Gegenteilannimmst)

    QT ist eine Alternative zu WinAPI, die auch unter Linux läuft.
    Wine ist ein Emulator, der .exe-Datein unter Linux laufen läßt.

    Seite für Wine: http://www.winehq.com/
    Seite für QT: http://www.trolltech.com/



  • @kinruedi :
    Erzähl mir mehr über das Projekt ! Du hast also versucht sowas wie Wine zu programmieren ? Mit welchem Erfolg ?

    CU



  • Nein nicht so etwas wie Wine.

    Ich hab so zu sagen versucht die Win32API als Wrapper für die POSIX Funktionen zu schreiben, also so, dass man Win32 Programme unter Linux kompilieren kann (bzw. leichter portieren).

    Ich hab aber das Projekt auf eisgelegt (mal schauen ob ich irgend wo noch die alten Sources hab), da ich die ncurses benutzt hatte für die Konsolen Funktionen und die ncurses + std I/O verträgt sich nicht. Das Projekt war aber eh noch nicht so weit. (Aber vorallem habe ich durch das Projekt gelernt, wie schlecht und beschränkt doch die WinAPI ist :))



  • Das ist ja genial das Prinzip 😉
    Ich denke am Anfang ist es superviel Arbeit, aber sobald man mal eine Grundlage hat gehts, oder ?

    Und an dem Source musstest du nix ändern ?



  • Das ist nicht wirklich viel arbeit am Anfang. Später wird es wahrscheinlich richtig kacke, wenn man Funktionen hat, die man nicht so leicht ersetzen kann, außerdem trägt das nicht gerade zur Performance bei, da die WinAPI grob klötzig und schlecht designt ist.

    Welchen Source musste ich nicht ändern?



  • Original erstellt von kingruedi:
    Welchen Source musste ich nicht ändern?

    Den Source von den Windowsprogrammen die du unter Linux compilen wolltest , natürlich 😉

    Was sind die PosixFunktionen eigentlich genau ? Sowas wie ne "LinuxApi" *g* ?
    Liefen damit auch MFC Programme ? Die basieren letztendlich ja auch nur auf der Winapi...



  • Die Lib war noch nicht sehr groß und enthielt nur ein paar Memory und Konsolen Funktionen. Eine wirkliche Anweisung habe ich damit nicht kompilieren können, bei dem kleinen Umfang, nur so simple Test Dinger.

    POSIX sind Standards, die beschreiben, wie ein Unice auszusehen hat ua. auch die Systemschnitstelle.

    Die Linux API enthält die POSIX Funktionen, einige BSD Funktionen und einige SYS V Funktionen.

    MFC Programme liefen damit nicht. Wenn das Projekt fertig geworden wär (was aber wahrscheinlich so nicht möglich ist, da ich glaube, dass die differenzen teilweise viel zu hoch sind!), dann hätte man die MFC (falls MS so nett ist und die Sourcen rausrück 😉 🙄 😞 ) mit der Lib kompilieren können und darauf dann MFC Programme. Man hätte natürlich auch eine MFC2POSIX Lib schreiben können.



  • @kingruedi: Bei Wine ist AFAIK ne Lib dabei, mit der man seine WinAPI-Programme ohne Änderungen unter Linux compilieren kann. Ist das nicht das, was du wolltest?



  • jo, wusste gar nicht, dass so was dabei ist. Ist ja praktisch, dann spar ich mir die Arbeit mein Projekt noch mal neu zu beginnen 😉


Anmelden zum Antworten