C++ Windows-API gesucht

  • Moin!

    Da ich recht gut Java und PHP kann, wollte ich mich jetzt mal mit diesen Vorkenntnissen an C++ und speziell die Windows-Programmierung begeben.

    Weiß jemand, wo die Microsoft Win32-API-Dokumentation zu finden ist und kann mir einen Link geben?

    Ich werd' bekloppt - ich weiß, dass es sowas gibt, irgendwo bei Microsoft unter MSDN. Ich hatte es schonmal irgendwann irgendwo ergoogelt, aber ich find's nicht wieder. Und auf den MSDN-Seiten verlaufe ich mich ständig in der Menüstruktur und find's auch nicht. Das ganze war so ähnlich wie die Java API Docs und beschrieb alle Klassen und Methoden der C++ Windows-Programmierung incl. Initialisierungsparameter etc.

    Gruß, Christian

  • Was du suchst, nennt sich wohl etwas genauer "Win32 API Reference". Allerdings scheint es, dass der Startpunkt dafür nicht (mehr?) einfach zu finden ist... Microsoft weiß, wie man Entwickler zu .NET lenkt.

    Sicherlich wird es irgendwo in der "MSDN Library" sein. Beispielsweise scheint mir Win32 and COM development > System Services ein guter Startpunkt zu sein.

    Aber ehrlich gesagt ... vielleicht siehst du dich doch besser nach einer alten Version einer Entwicklungsumgebung um. Delphi 3..7 hat beispielsweise HLP-Dateien der Win32-API dabei.
    __

    P.S.: Win32 & COM auf deutsch > Windows API auf deutsch (aber vermutlich trotzdem zum Großteil englisch)
    __

    P.P.S.: Unfug... da ist nichts brauchbares mehr. Ich habe mal nach [ CreateProcess Win32 API ] gesucht, im Grunde eine Standardanfrage... keine sinnvollen Ergebnisse mehr zu finden! Höchstens noch auf englisch.

  • Zitat von LigH

    Höchstens noch auf englisch.


    "Win32 and COM Development" - das ist doch schon was, danke.
    Das scheint's in der deutschen MSDN-Library nicht mehr zu geben. Mit Englisch hab' ich zum Glück kein Problem :)

    Zitat von LigH

    Microsoft weiß, wie man Entwickler zu .NET lenkt.


    Den Eindruck hab' ich auch... es ist noch gar nicht soooo lange her dass ich da mal eine wunderbare Übersicht á la Java API Docs gefunden habe - aber ob das Deutsch oder Englisch war, weiß ich nicht mehr.

    Das war so ähnlich wie in deinen Links, aber soweit ich mich erinnere irgendwie noch etwas spezifischer bzw. "purer", sowas wie "Introduction to..." oder "How can I..." war da glaub' ich nicht drin.


    /EDIT:

    Zitat von MSDN DirectX SDK


    Developer Audience

    This documentation set is for developers using the Microsoft .NET Framework. Separate documentation is available for developers using the C/C++ programming language.


    Toll... und selbstverständlich kein Hinweis, WO die seperate documentation available ist...

    Gruß, Christian

  • Die Windows API ist nicht von einer Programmiersprache abhängig auch wenn Windows in C/C++ geschrieben ist. Die Funktionen stecken in den System-DLL und dazu gibt es entsprechende Headerdateien, welche in verschiedene Sprachen übersetzt werden können.

    In der MSDN findet man in der Regel nur englischsprachiges. Denn welcher Softwareentwickler kann denn kein Englisch? :rolleyes:

    Wenn es um die Windows API geht, sucht man besser nach dem Platform SDK (PSDK) und findet zum Beispiel http://www.c-plusplus.de/forum/viewtopi…-is-143003.html Dort gibt Downloadlinks zum PSDK und zur MSDN. Oder man landet direkt bei MS: http://www.microsoft.com/msdownload/pla…e/psdk-full.htm

    Ein deutsches Forum zum Thema: http://www.winapi.net/

    Ein älteres PSDK ist auch auf http://avisynth.org/oldwiki/index.php?page=GraphEdit+Deutsch verlinkt.

    Ansonsten hilft es in einer Suchmaschine einen API-Aufruf einzugeben. Die ersten Treffer sind meist die entsprechenden Seiten im MSDN. Da kann man dann die weiteren Aufrufe finden.

    Gruß Frank

  • Gerade für den Zugriff auf große Dateien beispielsweise, oder ähnliche systemnahe Funktionen wie das Starten von anderen Programmen, evtl. gar verstecktes Starten von CLI-Programmen mit Überwachung ihrer Konsolenausgabe (das geht sehr wohl), wird es kaum ohne Win32-API gehen.

  • Zitat

    Wenn es darum geht ein Frontend für irgendwas zu schreiben würde ich QT nehmen. Die Funktionalität hinter dem Frontend kann man mit Java, Javascript und C++ recht einfach schreiben.

    Nicht nur Frontends, auch Dateizugriffe, Threads und XML mach ich damit.

    Zitat

    Gerade für den Zugriff auf große Dateien beispielsweise, oder ähnliche systemnahe Funktionen wie das Starten von anderen Programmen, evtl. gar verstecktes Starten von CLI-Programmen mit Überwachung ihrer Konsolenausgabe (das geht sehr wohl), wird es kaum ohne Win32-API gehen.

    Das geht mit Qt auch. Ich hab mir auch schon andere Frameworks angesehen aber mit Qt kann nix mithalten. Damit kann man den saubersten Code schreiben und egal ob Windows oder Linux einfach ein "qmake" und ein "make" und schon rennt das Programm auf einem anderem OS.

  • Zitat von Fr_An

    In der MSDN findet man in der Regel nur englischsprachiges. Denn welcher Softwareentwickler kann denn kein Englisch? :rolleyes:


    Du glaubst gar nicht, wieviele Leute bei uns in der Ausbildung (staatlich geprüfter Informatiker, sowohl Multimedia als auch Softwaretechnologie) kein vernünftiges bzw. ausreichendes Englisch beherrschen... Ich persönlich merke bei sowas z.T. schon gar nicht mehr, ob der Text in Deutsch oder Englisch ist - neulich habe ich bei irgendeinem Tutorial, nach dem mich ein Kollege fragte, steif und fest behauptet, es sei deutsch... war englisch, hatte ich gar nicht bemerkt ;) Den Inhalt habe ich "einfach so" verstanden, ohne über die Sprache nachzudenken.

    Zitat von Fr_An


    Das sieht mir nahezu optimal aus, danke :ja:

    Zitat von Selur

    Wenn es darum geht ein Frontend für irgendwas zu schreiben würde ich QT nehmen.


    Was bitte ist QT ausser Apple QuickTime? :)

    // EDIT: OK, gefunden. Sieht ganz interessant aus, schaue ich mir auf jeden Fall mal näher an.

    // EDIT2: Aha, ein Framework... "Code Less C" - nö, eben das will ich nicht :) Ich bin eher ein Fan von "purem" Code möglichst auf unterster Ebene - zumindest erstmal so lange, bis ich die absoluten Grundlagen 100% verstanden habe. War bei mir mit AJAX genauso - da gibt's so viel "aufgeblasenen" Kram und irgendwelche Frameworks, dabei geht's eigentlich nur um's implizite HTTPRequest-Objekt mit ein paar Methoden. :)

    Gruß, Christian

  • Zitat

    Ich bin eher ein Fan von "purem" Code möglichst auf unterster Ebene - zumindest erstmal so lange, bis ich die absoluten Grundlagen 100% verstanden habe.


    Also wenn dir als C++'ler Frameworks á la Qt oder wxWidgeds nicht zusagen und du klar Win32 Apps low level programmieren willst, dann gehts wie oben bereits gesagt nur direkt über die Win32API und deren Konzept ist prozedural und nicht objetorientiert, somit nicht C++.
    Die indirekte C++ variante von Microsoft der WinAPI programmierung (wenn man das so überhaupt nennen darf) ist die MFC (Microsoft Foundation Classes) und somit Klassenbasiert, also C++.
    Nur, die MFC ist quasi überall aktuell als nicht mehr empfehlenswert bezeichnet, da man bei solchen High Level APIs a) eher Platformübergreifend sein soll und b) es bessere und aktueller gehaltene gibt (z.B. Qt, wxWidgets, Ultimate++, etc.). Zumal Microsoft wohl in Zukunft die MFC wegen des präferierten .net Konzeptes aussterben lässt, bzw. nicht weiter supporten wird (was ja quasi das Gleiche ist).

    Wenn du also direkt in Win32API programmieren willst, dann geht das eigentlich bei C/C++ nur via Prozeduralem C, bzw. in prozedural misbrauchtem C++ (bzw. auch mit anderen Sprachen, die ein direktes Aufrufen der Win32 zulassen möglich ist).

    Warum willst du so etwas komplexes wie die Win32API mühevoll verstehen? Die Win32API ist (IMHO zu) vielfältig (genauso wie das .net Framework), man kann mit ihr nicht so schnell Dinge erreichen, wie z.B. mit anderen Sprachen oder anderen Frameworks.
    Überlege es dir gut, zumal ein richtig objektorientiertes Arbeiten mit der Win32 API damit nicht möglich ist.

    Und da du von C++ Programmierung redest, denke ich mal wilslt du auch objektorientiert programmieren?

  • Du glaubst gar nicht, wieviele Leute bei uns in der Ausbildung (staatlich geprüfter Informatiker, sowohl Multimedia als auch Softwaretechnologie) kein vernünftiges bzw. ausreichendes Englisch beherrschen... Ich persönlich merke bei sowas z.T. schon gar nicht mehr, ob der Text in Deutsch oder Englisch ist - neulich habe ich bei irgendeinem Tutorial, nach dem mich ein Kollege fragte, steif und fest behauptet, es sei deutsch... war englisch, hatte ich gar nicht bemerkt ;) Den Inhalt habe ich "einfach so" verstanden, ohne über die Sprache nachzudenken.


    Mein Englisch ist auch nur rudimentär. Dauert dann etwas länger, bis ich was verstehe.

    Gruß Frank

  • Zitat von incredible

    Und da du von C++ Programmierung redest, denke ich mal wilslt du auch objektorientiert programmieren?


    Nicht zwingend :) Beim letzten großen Projekt in PHP hörte ich mich noch sagen: "Hey, lass' uns das objektorientiert machen" und hätte mich etwas später vor dem Spiegel stundenlang selbst verprügeln können ;) Im Ernst: manchmal widerstrebt mir die objektorientierung etwas, weil vieles prozedural (zumindest für mich) einfacher zu erfassen und durchzuführen ist und ich es so meist auch logischer und übersichtlicher finde. Außerdem haben wir in unserer Ausbildung so viele Definitionen von "Objektorientierung" kennengelernt... für mich war das eigentlich immer nur Klasse - Attribute - Konstruktor - Methoden, alles was nicht nach außen muss private, Generalisierung und Überladung, manchmal hieß es später: "Nee, das ist aber nicht objektorientiert, das ist total prozedural", bei anderen Sachen - die wir ebenso nach meiner Definition bzw. meinem Verständnis von Objektorientierung erstellt haben - hieß es: "Ja, wunderbar, super objektorientiert". Das war ETWAS verwirrend...;)

    Aber im Großen und Ganzen geht's mir um die Sprache an sich. Die Objektorientierung ist ja nicht der einzige Unterschied zwischen C und C++. Spontan und bei meinem momentanen Kenntnisstand fiele mir da z.B. noch die beliebige Variablendeklaration ein. Außerdem ist die Objektorientierung in C++ ja quasi wie die in Java, auch syntaktisch sehr ähnlich.

    Die WinAPI brauche im im Prinzip nur, um damit mehr oder weniger zu "üben", also um irgendwas zu haben, wo ich C(++) auch mal sinnvoll einsetzen kann. Ich studiere ab Anfang nächsten Jahres angewandte Informatik als Aufbau auf meine Ausbildung, da kommt C++ als Studieninhalt vor. Und ich mag es, schon mal mit 50% Vorkenntnissen in einer Vorlesung zu sitzen :) Speziell um Pointer, Referenzen und den ganzen anderen Krams, den es in Java / PHP nicht gibt, muss ich mich nochmal kümmern.

    Gruß, Christian

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!