Grafische Applikation mit C++

C

ChrisR

Mitglied
Thread Starter
Dabei seit
16.11.2005
Beiträge
54
Reaktionspunkte
0
Hallo!

Ich möchte mit C++ eine grafische Applikation (d.h. mit Fenster, Buttons, etc.) erstellten. Gibt es unter MacOS irgendwas das der Win32-API unter Windows bzw. der Xlib unter Linux entspricht? Also eine API, mit der man direkt Systemfunktionen aufrufen kann. Ich will keine Bibliotheken wie Qt oder GLUT verwenden, die das für mich erledigen, sondern ich will das selbst machen.

Ich verwende die XCode Tools. Welchen Projekttyp muss ich da auswählen?

Danke!

mfg
 
Cocoa, Carbon usw?
lies doch mal einfach die developer docs, wenn du schon xcode hast...
 
ChrisR schrieb:
Ich will keine Bibliotheken wie Qt oder GLUT verwenden, die das für mich erledigen, sondern ich will das selbst machen.

Du kannst dir auch beide Hände abhacken und dann die leichten Bibliotheken benutzen... :rolleyes:

Naja... ich denke mal du suchst Carbon. Wenn du aber wirklich alles vom Urschleim aus machen willst, dann solltest du dir wohl eher Quartz angucken.
 
Danke erstmal. Ich glaube Cocoa ist nicht das das ich suche. Im Internet liest man überall dass es eher/nur für Objective-C ist. Es ist mir ein Rätsel warum. Immerhin ist C++ viel bekannter als Objective-C. Naja, jedenfalls will ich auf jeden Fall bei C++ bleiben.

Carbon hab ich schon zum Laufen gebracht. Das geht problemlos mit C++. Wo ist da eigentlich sonst der Unterschied? Die unterstützten Sprachen kann ja nicht alles sein. Ist eines davon aktueller, also der Nachfolger des anderen?

Sind eigentlich Carbon und Cocoa direkt im System implementiert (sind die überhaupt von Apple)? Ich will jedenfalls eine API, die garantiert auf jedem MacOS-System verfügbar ist. Qt ist es ja soweit ich weiß nicht unbedingt.

Gibt es unterMacOS überhaupt irgendwas das man mit der Win32-API vergleichen kann? Also so eine zentrale API mit der man mit dem System kommunizieren kann (nicht nur für GUI, sondern allgemein).

mfg
 
ChrisR schrieb:
Es ist mir ein Rätsel warum. Immerhin ist C++ viel bekannter als Objective-C.

Weil Cocoa in C++ nicht umsetzbar waere. C++ ist viel zu statisch dazu. Ausser du programmierst das was Objective-C ausmacht in C++ nach und erweiterst die Sprache. (wie es z.B. Qt macht!)
 
Zuletzt bearbeitet:
Wenn man C++ kann ist Objective-C ganz leicht zu lernen.

Gruss

Alex
 
ChrisR schrieb:
Carbon hab ich schon zum Laufen gebracht. Das geht problemlos mit C++. Wo ist da eigentlich sonst der Unterschied? Die unterstützten Sprachen kann ja nicht alles sein. Ist eines davon aktueller, also der Nachfolger des anderen?

Cocoa kommt halt eher von den NextStep-Wurzeln von OS X, deswegen fangen die meisten Klassen da auch mit NS an...
Carbon hat seinen Ursprung im klassischen Mac OS und läuft halt auf OS X und unter OS 8-9...
Carbon wird aber über kurz oder lang mit dem Intel-Switch verschwinden...

ChrisR schrieb:
Sind eigentlich Carbon und Cocoa direkt im System implementiert (sind die überhaupt von Apple)? Ich will jedenfalls eine API, die garantiert auf jedem MacOS-System verfügbar ist. Qt ist es ja soweit ich weiß nicht unbedingt.

Garantiert verfügbar ist da nur Carbon...
Cocoa ist nur auf OS X....

ChrisR schrieb:
Gibt es unterMacOS überhaupt irgendwas das man mit der Win32-API vergleichen kann? Also so eine zentrale API mit der man mit dem System kommunizieren kann (nicht nur für GUI, sondern allgemein).

Carbon, Cocoa etc ;)
 
oneOeight schrieb:
Carbon wird aber über kurz oder lang mit dem Intel-Switch verschwinden...

Neeee. Das wird schon noch ne Weile so bleiben...

Es ist mir ein Rätsel warum. Immerhin ist C++ viel bekannter als Objective-C.

Windows ist auch bekannter. Das heißt aber nicht gleich das es besser, geeigneter, oder leichter wäre. ;)

Les dir einfach mal eine gute Beschreibung zu Objective-C durch und dann merkst du schon warum Objective-C verwendet wird.
 
Zuletzt bearbeitet:
Es ist nur so dass ich etliche Bibliotheken in C++ geschrieben habe und diese gerne auch unter MacOS in Verbindung mit einer grafischen Oberfläche nutzen möchte.

Auch wenn Objective-C vielleicht technisch besser geeignet ist: C++ ist nach wie vor so weit verbreitet wie kaum eine andere Sprache. Wie kann man diese dann nicht unterstützen. Microsoft setzt momentan auch stark auf .NET und es bietet ja zweifelsfrei etliche Vorteile. Trotzdem traut sich nicht mal MS native C++ nicht mehr zu unterstützen.

Was mich auch interessieren würde: Wird Objective-C in Machinencode übersetzt? Ich hasse Sprachen, die unnötige Abhängigkeiten erzeugen (.NET, Java, etc.). Ich will dass meine Programme ohne irgendeine zusätzliche Software (Runtime Environment) laufen.

mfg
 
ChrisR schrieb:
Ich will dass meine Programme ohne irgendeine zusätzliche Software (Runtime Environment) laufen.

Oh, dann ist C++ ja für Dich nix :p Mal ganz im Ernst: So wie C++ auch braucht Objective-C eine Runtime Library. Das ist aber nicht mit Runtime Environments wie Java oder .Net zu vergleichen.

Und Objective-C wird genauso übersetzt wie C++, also nicht in Zwischencode.

Ausserdem, das war meine eigentlich gute Nachricht, lassen sich Objective-C und C++ prima mischen. Ich habe auch Libraries in C++, die dann ein Objective-C GUI verpasst bekommen haben

Gruss

Alex
 
below schrieb:
Oh, dann ist C++ ja für Dich nix

Seit wann braucht C++ eine Laufzeitumgebung die man separat installieren muss? Dass es total ohne Libraries läuft hab ich ja nicht behauptet (obwohl man das dem Compiler sagen kann, wobei man dann aber auch keine Aufrufe solcher Funktionen machen darf), nur sind diese beim OS dabei.

mfg
 
ChrisR schrieb:
Seit wann braucht C++ eine Laufzeitumgebung die man separat installieren muss? Dass es total ohne Libraries läuft hab ich ja nicht behauptet (obwohl man das dem Compiler sagen kann, wobei man dann aber auch keine Aufrufe solcher Funktionen machen darf), nur sind diese beim OS dabei.
Die Cocoa-und-Konsorten-Frameworks sind auch beim System dabei, das ist also kein Unterschied zu C++. Darüber hinaus kann man die Bibliotheken auch direkt in das Programm einbinden, allerdings weiß ich nicht, ob das beim Cocoa-Framework problemlos von statten geht. Und eine Laufzeitumgebung, die etwas anderes wäre als eine Sammlung von Bibliotheken, benötigt auch Cocoa nicht, schließlich werden Objective-C-Programme ebenso zu nativem Code kompiliert wie C(++)-Programme.
 
ChrisR schrieb:
Seit wann braucht C++ eine Laufzeitumgebung die man separat installieren muss?

Sollte ja auch nur ein Spass sein. Du sprachst von "Runtime Environments", und C++ und Objective-C haben "Runtime Environments".

Und auf Linux gibt es auch Probleme mit libc5 vs. libc6.

Naja, nichts für ungut. Cocoa läuft auf jedem Mac, out of the Box.

Gruss

Alex
 
Zuletzt bearbeitet:
Ich sehene mich dennoch zu den Carbon-Zeiten zurück... Ich habe unter Mac OS X Tiger ein tolles Carbon Programm, für welches ich beliebige Summen zahlen würde... es ist der Net-Finder (FTP Programm) und man sieht auch, wie viel schneller sich Carbon anfühlt...
 
aeuglein schrieb:
Ich sehene mich dennoch zu den Carbon-Zeiten zurück... Ich habe unter Mac OS X Tiger ein tolles Carbon Programm, für welches ich beliebige Summen zahlen würde... es ist der Net-Finder (FTP Programm) und man sieht auch, wie viel schneller sich Carbon anfühlt...
Dafür werde ich auch Mac OS X nicht den Eindruck los, das Carbon-Benutzeroberflächen „flackern.“ Ganz wunderbar war das unter dem klassischen Mac OS zu beobachten, wenn man Fenster ein- und wieder ausklappte hat – Da flackerte es dann, was das Zeug hielt. Außerdem stört mich an Carbonprogrammen unter Mac OS X massiv, daß ich inaktive Fenster nicht bedienen kann, wie das bei Cocoa der Fall ist (gedrückte Befehlstaste). Ich kann sie lediglich verschieben, schließen, usw. Aber natürlich hast du recht, bei Cocoabenutzeroberflächen spürt man schon, was die Objektorientierung „frißt.“
 
aeuglein schrieb:
ein tolles Carbon Programm, für welches ich beliebige Summen zahlen würde.

Hast Du noch andere Software Wünsche? Dann schick mir mal eine Mail ;)

Gruss

Alex
 
Du kannst C++ Code in Cocoa einbetten.
 
Zurück
Oben Unten