• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Objective C++ etc.

blutaermer

Ingrid Marie
Registriert
31.12.03
Beiträge
273
Ich habe mal ein paar prinzipielle Fragen:
ich versuche gerade eine C++ Bibliothek zusammenzuschustern und moechte spaeter evtl. darauf zugreifen koennen(dafuer sind die ja da ;) ) und das sowohl mit Objective C (also Cocoamaessig) als auch mit C++(vielleicht Qt oder so).

Nun gibts ja Objective-C++. Der gcc 4.1 (die offizielle version) compiliert dieses zeugs ja auch und ich mutmasse mal, dass der apple-gcc 4.0 das auch kann. um meinem ziel naeher zu kommen bietet sich ObjC++ an - denke ich mal.

Was muss ich jetzt tun um meine Bibliothek darauf vorzubereiten?
Gibts da nette Quellen im Netz?
Kann man im Quellcode die ObjC++ erweiterungen durch praeprozessor anweisungen ausschliessen (damit auch andere, die nicht den gcc 4.1 verwenden die bibliothek bauen koennen)?
oder waere es einfacher die bibliothek in purem C++ zu schreiben und dann wrapperklassen zu basteln, die in ObjC++ geschrieben sind?

Fragen ueber Fragen ...
 

k3rn3lpanic

Macoun
Registriert
05.06.05
Beiträge
122
Also die Bibliothek solltest Du in reinem C++ halten, ansonsten hast Du z.B. mit QT sehr schlechte Karten.
Du kannst dann aber durchaus mit ObjC Wrapperklassen dafuer schreiben.
 

blutaermer

Ingrid Marie
Registriert
31.12.03
Beiträge
273
k3rn3lpanic schrieb:
Also die Bibliothek solltest Du in reinem C++ halten, ansonsten hast Du z.B. mit QT sehr schlechte Karten.

Deswegen wollte ich die ObjC++ Erweiterungen ja auch mit Praeprozessordefinitionen kapseln. Da ich aber nicht genau weiss wie diese Erweiterungen aussehen, weiss ich auch gar nicht ob das geht.

k3rn3lpanic schrieb:
Du kannst dann aber durchaus mit ObjC Wrapperklassen dafuer schreiben.
Ist jetzt ne ernsthafte Frage: das waeren dann schon ObjC++ Wrapperklassen oder?
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.059
blutaermer schrieb:
Deswegen wollte ich die ObjC++ Erweiterungen ja auch mit Praeprozessordefinitionen kapseln.
Nein, das geht nicht.

Die C++-Bibliothek bzw. das C++-Framework muß komplett in C++ geschrieben sein, und darf keinerlei Objective-C Anteile enthalten. Daher braucht man auch keinen Präprozessor.

Diese C++-Bibliothek kannst Du nun in einem C++ oder Objective-C Programm verwenden. Bei ersterem geht das ganz normal und Du brauchst Dir keinerlei Gedanken darüber machen. In dem Objective-C Programm sieht die Sache aber anders aus, da müssen das C++ Laufzeitmodell und das Objective-C Laufzeitmodell unter einen Hut gebracht werden. Für solche Zwecke hat Apple Objective-C++ entwickelt.

Genauere Infos was Du in den Übersetzungseinheiten machen mußt, damit C++ und Objective-C zusammenarbeiten können, mußt Du in der Entwickler Doku von Apple nachlesen.
 

blutaermer

Ingrid Marie
Registriert
31.12.03
Beiträge
273
tjp schrieb:
Nein, das geht nicht.
Die C++-Bibliothek bzw. das C++-Framework muß komplett in C++ geschrieben sein, und darf keinerlei Objective-C Anteile enthalten.

na gut ich nehme das jetzt mal so hin, obwohl ich nicht weiss ob du mich richtig verstanden hast. aber vermutlich ja. das wuerde dann bedeuten, dass die ObjC anpassungen mit C++ nehr verwoben ist als ich dachte.

tjp schrieb:
Daher braucht man auch keinen Präprozessor.

ich brauche immer einen - schon wegen der includes ... ;)

tjp schrieb:
Diese C++-Bibliothek kannst Du nun in einem C++ oder Objective-C Programm verwenden. Bei ersterem geht das ganz normal und Du brauchst Dir keinerlei Gedanken darüber machen. In dem Objective-C Programm sieht die Sache aber anders aus, da müssen das C++ Laufzeitmodell und das Objective-C Laufzeitmodell unter einen Hut gebracht werden. Für solche Zwecke hat Apple Objective-C++ entwickelt.

ok. so habe ich mir das auch gedacht. also nen wrapper machen.

tjp schrieb:
Genauere Infos was Du in den Übersetzungseinheiten machen mußt, damit C++ und Objective-C zusammenarbeiten können, mußt Du in der Entwickler Doku von Apple nachlesen.

hat jemand noch nen geheimtipp, wo ich noch gute doku genau zu diesem thema finde?