Benutzt ihr STL Container in MFC?
-
Hallo Leute,
wenn ihr Programme mit MFC programmiert, verwendet ihr auschlieslich die MFC Klassen bspw. CArray etc. oder mischt ihr die Programmlogic bspw mit STL std::vector Container?
Ist es schlechter Stil wenn ich die MFC auschliesslich für die GUI verwendet, und die Programmlogic mit std. C++ schreibe?
grüße
-
Was für schlechter Stil? Ist es schlechter Stil die CRT zu verwenden, die aus ANSI C Zeiten kommt?
Diese Libraries sind alles Werkzeuge.
Ich verwende die Werkzeuge die passen. Ohne std::list,set,map wil ich nicht mehr programmieren. Die MFC-Container Klassen dagegen, verwende ich so gut wie nicht mehr (obwohl die CList Implementierung klar schneller ist als die std::list Version. Stichwort hier: Poolallocator).
std::string verwende ich dagegen wieder kaum. CString ist std::string eben in einem wichtigen Bereich bei der Kommunikation mit der WinAPI überlegen: GetBuffer.Ich verwende einige weitere eigenen Extensions zur MFC. Ich verwende die BCG Library und und und
Warum sollte ich das nicht tun?
-
naja weil evlt. viele Leute über solch einen Stil nörgeln.. finde die STL container auch super, aber es wundert mich das CList schneller ist als std::list..
Die MFC find ich deswegen gut, weil man gleich mal ne Gui hat...na klar es gibt auch ander Frameworks.. und viel würde nsagen MFC ist scheisse wird nicht mehr weiterentwickelt etc. aber ist schon gut...:)
Wie siehts es mit Thread aus ? nimmst du afxbegintrhead oder std. CreateThread?
-
Es gibt kein "std. CreateThread". Wer mit der MFC arbeitet sollte meist AfxBeginThread verwenden. Für Worker-Threads die nix mit der MFC machen kann man noch _beginthreadex verwenden, aber CreateThread ist meist nicht das was man will wenn man mit den Libraries vom MSVC programmiert.
-
Ich nehme nur die MFC-Implementationen. Mit der STL konnte ich mich bis heute nicht anfreunden, was vermutlich auch etwas mit der ungewohnten Syntax zu tun hat. Zudem habe ich bis vor einigen Monaten noch VC6 benutzt, der auch nicht der templatefähigste Compiler war. Ein weiterer Grund ist die 530 KiB (808 KiB für x64) große Laufzeitbibliothek, die man dann zusätzlich zur normalen C-Runtime ausliefern muss.
Mir ist es egal, ob andere über meinen Stil nörgeln. Letztlich muss ich meine Programme entwickeln und pflegen, und nicht die anderen.

-
BorisDieKlinge schrieb:
wenn ihr Programme mit MFC programmiert, verwendet ihr auschlieslich die MFC Klassen bspw. CArray etc. oder mischt ihr die Programmlogic bspw mit STL std::vector Container?
Ja, natürlich. Oder haust Du einen Nagel mit der Zange in die Wand, wenn Du einen Hammer zur Verfügung hast?
Ist es schlechter Stil wenn ich die MFC auschliesslich für die GUI verwendet, und die Programmlogic mit std. C++ schreibe?
Nein, genau so mache ich das auch.
Grüße aus der Kaiserstadt
-
BorisDieKlinge schrieb:
Wie siehts es mit Thread aus ? nimmst du afxbegintrhead oder std. CreateThread?
http://blog.m-ri.de/index.php/2008/02/28/afxbeginthread-versus-_beginthreadex/