Programm Linux kompatibel machen
-
Hallo
Wollte mal fragen, was benötigt wird, um ein Programm Linux kompatibel zumachen?Lassen sich Funktionen wie ShellExecute ersetzen?
-
Klar, wenn es eine equivalente Funktion gibt. Dann kannst du dir die richtige Funktion per Preprozessor auswählen lassen:
#if _WIN32 /* windows 32 bit version */ ShellExecute( ... ) #else /* linux */ Linuxalternative #endif
-
Reng schrieb:
Wollte mal fragen, was benötigt wird, um ein Programm Linux kompatibel zumachen?
Solange du dich an ANSI-C++ gehalten hast, ist gar nichts nötig. Nur OS-Funktionen (WinAPI) mußt du ersetzen - und das kann recht aufwendig werden.
Lassen sich Funktionen wie ShellExecute ersetzen?
Sicher. Dort gibt es man: exec und Co. in Zusammenarbeit mit fork(), die eine vergleichbare Aufgabe übernehmen (aber die Syntax ist etwas anders).
-
Ich habe gelesen,dass ich anstatt ShellExecute system() verwenden soll.
Aber dies möchte nicht so recht funktionieren.Unter Windows:
ShellExecute(0,"open",InetAdresse,0,0,SW_SHOWNORMAL);
Funktioniert problemlos.Browser öffnet sich mit der in der Variablen enthaltenen URL.
Linux :
System(InetAdresse);
Funktioniert nicht.Konsole zeigt an beim ausführen der compilierten Datei an: sh:www.gmx.de command not found.
Wie kann man es in Linux so gestalten, dass es genauso wie in WIndows funktioniert?
-
Hallo
Lies dir den Post von CStoll nochmal durch.
bis bald
akari
-
Ja ok,aber ich glaube, dass ich deren Funktionsweise noch nicht richtig verstanden habe.fork() startet einen neuen Prozess und die exec Funktionen starten ein Programm über einen angegebenen Pfad.Ist das so richtig?
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Eine Alternative zu ShellExecute gibt es höchstens in Umgebungen wie KDE oder Gnome. Du musst den Browser vom Benutzer festlegen lassen (zB. mit einer Umgebungsvariablen $BROWSER) und den dann mit der Url aufrufen.
-