Anfänger->Verständnis der VC++ Hilfe



  • Hallo,

    erst mal begrüße ich Euch alle hier im Forum, denn ich bin neu hier und auch im Bezug auf Microsofts Visual C++ 2005, mit dem ich gerade angefangen habe.
    Nach einiger ( stolperzeit ) in Delphi habe ich mich entschlossen doch C++ von Grund auf zu lernen und hoffe es nicht zu bereuen !?

    Ich hab auch gleich die erste Frage die hier auftaucht ( bei Studieren einer englischen pdf Datei über VC++ ):

    Wenn ich irgendwas in der IDE markiere, ein stückchen Code, z.B. "cou" oder so und F1 drücke komm ich doch zu der Hilfe. Die sollte mir doch dann einiges ( aufschlußeiches ) über das Schlüsselwort sagen oder ?
    Bei "cout" z.B. geht das ja, aber es kommt immer wieder vor das ich nicht weiss was ich dazu einbinden muss, also mit #include in den Quelltext aufnehmen muss ?
    Wie genau bekomme ich das heraus ?

    Ein Beispiel...ja, sinnlos jetzt für mich, aber is ja nur ein Beispiel :

    hab im Quelltext mal einfach "DWordPtrToDWord" hingeschrieben, das markiert und F1 gedrückt. Hilfe dazu kommt ja dann auch, toll, aber wenn ich kompilieren will kommt ein Fehler " undefinierter Bezeichner " oder so ähnlich.
    Jedenfalls kennt VC++ den Befehl nicht. Wenns den aber in der Hilfe gibt, dann gibts den auch, also kein Schreibfehler, was ja auch mal vorkommt.
    In Delphi ( sorry ) war das einfacher. Da stand unten irgendwo was man über die uses Klausel einbinden muss. Hier steht zwar auch :

    Function Information

    Header intsafe.h
    Import library None

    aber damit kann ich ( noch ) nicht wirklich was anfangen.
    #include "intsafe" dachte ich ja zuerst, geht aber nicht.

    Also die Frage ist jetzt wie ich das mache und woher ich die Informationen bekomme ?
    Genau das gleiche ist es mit diesen Naespaces. Wo zum Geiler 🙂 steht denn was in welchem Namespace enthalten ist ?

    hmm.... könnt ihr mir helfen ?
    Dank Euch
    Matthias



  • Hallo

    das sollte

    #include <intsafe.h>
    

    heißen

    bis bald
    akari



  • Hallo,

    danke für die schnelle Antwort. Habs gleich getestet, geht aber nicht ....
    Kommt der gleich Fehler :

    Fehler 1 fatal error C1083: Datei (Include) kann nicht geöffnet werden: "intsafe.h": No such file or directory e:\eigene dateien\visual studio 2005\projects\projects c++\ex2_01\ex2_01\ex2_01.cpp 6

    Hmm, weiss auch nicht woran das liegt.
    Zur Info, ich arbeite hier mit Visual C++ 2005 Express von MS die kostenlose Version. Das ist doch .NET, vielleicht liegt das irgendwie daran ?

    Matthias



  • wenn du das Platform SDK richtig eingerichtet hast geht es mit

    #include <crt/intsafe.h>

    aber da haste dir auch gerade was rausgesucht was man eigentlich nie benutzt. 😉



  • Hallo,

    hab das auch gleich getestet, geht auch nicht und das was Du geschrieben hast bestätigt meinen Verdacht.
    Ich hatte erst Borland Developer Studio 2006 installier und dann das Microsoft Visual Studio 2005. Dabei ist sicher irgendwas durcheinander geraten.
    Was mach ich denn jetzt am besten damit das alles richtig geht ?
    Alles deinstallieren, inclusive .NET Framework und dann neu installieren ?

    Matthias



  • Hast du das aktuelle Platform SDK runtergeladen und installiert?

    ➡ http://www.microsoft.com/downloads/details.aspx?FamilyId=E15438AC-60BE-41BD-AA14-7F1E0F19CA0D&displaylang=en

    Denn nur dort ist die Datei drin.



  • Hallo,

    sorry aber ich hab so viel installiert, keine Ahnung ob das da mit bei war oder nicht ... sorry mein Fehler. Hätt ich wissen müssen.

    Frage : Das ist doch jetzt sozusgaen die WinApi oder ?

    Matthias



  • Ja das brauchst du um die WinAPI nutzen zu können. Wenn du dir unsicher bist dann installier es halt nochmal.
    Hier ne Anleitung wie man es einbindet: http://old.germangamedev.de/index.php?site=article&id=28



  • Hallo,

    coole Sache, jetzt gehts !!
    Ich danke Euch !

    Doch nun zu der 2. Frage ... Namespace.
    cout und cin z.B. sind im Namespace std enthalten ... richtig ?
    Doch jetzt mal so als unwissender der ich bin .. woher erfahre ich denn mal was in welchem Namespace enthalten ist und welche Namespaces es überhaupt gibt ?

    Matthias



  • STF-DIR schrieb:

    Hallo,
    Doch jetzt mal so als unwissender der ich bin .. woher erfahre ich denn mal was in welchem Namespace enthalten ist und welche Namespaces es überhaupt gibt ?

    Erfahrung 😉

    für std:: kannst du dir erstmal merken: alle headernamen ohne ".h" oder ".hpp" wie zb #include <ctime> oder #include<iostream> sind standardheader. Dort liegt alles im namespace std(oder std::tr1 aber das ist erstmal uninteressant :D)

    Für alles andere musst du die dokumentation der bibliohek anschaun, die du grad benutzen willst 😉



  • Hallo,

    ok werd ich machen.
    Ich dachte da gibts irgendwo so ne Art Tabelle wo jeder verfügbare Namespace drin steht und was der denn alles beinhaltet.

    Aber ok, Erfahrung ... machts dann halt.
    Die werd ich dann in 3-4 Jahren vielleicht auch haben 🙂

    Ich hab Zeit ... ich bin ja noch jung, ich kann ja warten 🙂 🙂

    Dank Euch erst mal allen
    und ich werd mich sicher in den nächsten Tagen öfter mal mit blöden Fragen melden wenns ok ist ?

    Matthias



  • Hi,

    naja, eigentlich läuft das ja andersherum: Du suchst eine Funktionalität, findest sie in der Doku .... und da steht dann üblicherweise auch, wie man sie abruft und dazu gehört natürlich auch der namespace. Du mußt ja noch viel mehr wissen, als nur den namespace-Namen, wenn Du eine Funktion aufrufen, einen definierten Typen verwenden, .... willst.

    Wenn die Doku (was ist das eigentlich ? 😉 ) nicht das Gewünschte liefert, ist es auf jedem Fall aus dem eingebundenen Header zu ersehen.

    Gruß,

    Simon2.



  • Hallo

    Wenn die Doku (was ist das eigentlich ?)

    Doku = Dokumentation einer Library-Schnittstelle.

    bis bald
    akari



  • akari schrieb:

    Hallo

    Wenn die Doku (was ist das eigentlich ?)

    Doku = Dokumentation einer Library-Schnittstelle.

    bis bald
    akari

    Ah - ich sehe schon, dass ich mit meinen Fragen hier einen Status erreicht habe, an dem meine Ironie nicht mehr verstanden wird. 😉

    Gruß,

    Simon2.



  • Hallo,

    naja sorum geht das natürlich !
    Ich dachte nur das es da irgendwo mal eine Liste ALLER Funktionen oder so gibt damit man mal einen Überblick bekommt was eigentlich alles möglich ist.

    Matthias



  • Hallo

    Findest du auf den C++ Standard bezogen zum Beispiel hier.

    bis bald
    akari



  • Hallo,

    dank Dir .. sowas hab ich gesucht ...
    Hab auch noch was gefunden :

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcstdlib/html/vclrfcpluspluslibraryoverview.asp

    ist vielleicht auch mal ganz hilfreich !

    Matthias



  • Hallo nochmal,

    ich hab da gerade eben noch was gefunden was mir nicht wirklich einleuchtet, sorry 🙂

    Also ich bin gerade bei den Datentypen angekommen und bin auf DWORD gestoßen.
    Hab herausgefunden das ein DWORD ein unsigned int 32 ist
    jedenfalls nach meinem PSDK : ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.WIN32COM.v10.en/WINPROG/winprog/windows_data_types.htm

    oder hier : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winprog/winprog/windows_data_types.asp

    Ein stück weiter unten findet man dann eine Zeile :

    DWORD 32-bit unsigned integer.
    This type is declared in WinDef.h as follows:

    typedef unsigned long DWORD;

    So, hab mir mal die WinDef.h angesehen und tatsächlich steht das auch da drin. Nun gut, gleich mal testen hab ich mir gedacht und hab

    #include <WinDef.h> eingebunden.
    Siehe da ... Du siehst lauter Fehler ???

    Fehler 1 error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'ContextRecord' c:\programme\microsoft visual studio 8\vc\platformsdk\include\winnt.h 3857

    z.B. Hmm... da stehllt Sich wieder die gleiche Frage ,.. oder immernoch besser gesagt? Wie komme ich nun darauf was ich einbinden muss damit ich den Typ DWORD verwenden kann ?

    Irgendwie ist mir die Hilfe zu VC++ noch nicht so wirklich gut gesonnen.
    Könnt Ihr mir das mal bitte nochmal genauer erklären ?

    Danke für Euer VErständnis schon mal !
    Wenns auch nervig ist, aber ich will die Grundlagen erst mal 100% begreifen bevor ich weitermache.

    Matthias



  • Hi,

    da begibst Du Dich in den "Sumpf der Proprietät" 😉 .... d.h. da findest Du eine Menge Dinge, die NICHT zum Standard gehören, sondern Microsoft-erweiterungen o.ä. sind.

    Stürze Dich besser auf akaris link und noch das eine oder andere Buch. Erst, wenn das, was Du unbedingt brauchst wirklich nicht da drin ist (Beides erstmal checken !), kannst Du Dich immer noch diesen Spezialitäten widmen.

    Das ganze DWORD-Zeug etc. würde ich jedenfalls nicht mal mit der Zange anfassen ... 😉

    Gruß,

    Simon2.



  • Hallo,

    danke für die Antwort...also kann ich davon ausgehen das ich nicht zu blöd bin.
    Werd Euer beider Rat folgen und mich erst mal weiter auf mein Tutorial und den Link stürzen.

    Dank Euch nochmals !!
    Matthias


Anmelden zum Antworten