002
13.03.2006, 16:56 Uhr
RHBaum
|
Das die WinApi, genau so wie die API fuer Linux (Posix) oder gar DirectX (COM = C ) C Schnittstellen sind, hat auch nen praktischen Hintergrund ! die Exportsymbole von C++ Klassen sind nicht standardisiert ! eine c++ lib / DLL mit klassenexporten muss fuer deinen compiler compiliert sein ! Nun stell dir vor, du verwendest den MS compiler, und willst auf den gcc port umschwenken. oder mal Pascal probieren . waere die API nicht in C sondern in c++ muesstest die ganze API neukcompilieren. Du kannst natuerlich auch in dlls die nur c-schnittsellen haben intern C++ einsetzen, da hindert dich keiner ... nur Klassen darfst nicht ueber die Schnittstelle schicken, wenn du kompilerunabhaengig bleiben willst ....
Nichst destotrotz gibt es auch c++ frameworks fuer windows. die WTL ... das sind eigentlich nur template wrapper fuer die winapi. dadurch das bei templates der code erst bei der endgueltigen uebersetzung compiliert wird (ist keine vorkompilierte lib), sollten die mit den meisten compileren gehen.
Prominentes Beispiel eines compilierten C++ frameworks ist die QT . wechsel da mal den compiler ^^ viel spass beim neucompilieren :-)
Das .Net Framework macht auch nur kranke Sachen und erfindet quasistandards (wie COM) um die ganzen kompatibilitaetsprobleme zu umgehen. das steckt dann auch ne komplexe C Aufrufshirarchie dahinter ....
Ciao ... Dieser Post wurde am 13.03.2006 um 17:00 Uhr von RHBaum editiert. |