Syntaxfehler beim einbinden von Wininet.h



  • und was hast du dadurch jetzt gekonnt?
    Du meinst durch das Hinzulinken einer lib die Syntaxfehler wegzubekommen?
    außerdem hab ich schon 20mal gesagt, er soll die zeile der wininet.h zeigen(copy und paste hier rein), die der compiler beanstandet - wenn überhaupt, kann man so raten, wieso es Fehler gibt...

    bb



  • Achso. muss ich die .Dll und die .lib auch noch dazu einbinden? Ich hab wohl bisher zu wenig Header verwendet. 😃

    Naja trotzdem danke. Ich werds morgen gleich mal weiter testen und dann klappts hoffentlich.

    Lg One-Man-Army

    [edit]

    Also ich weiß grad nicht welche Zeile du meinst!? Also ich bin bisher der Meinung dass alles gesagt ist, was gefragt war !? Mein kompletter Code des Programms steht ja schon mehr oder weniger drin. Bin ja noch am Anfang des ganzen 😉



  • One-Man-Army schrieb:

    Mein kompletter Code des Programms steht ja schon mehr oder weniger drin.

    Ich sehe nirgendwo kompletten Code.
    Kannst du exakt das Programm aus diesem Beitrag kompilieren? Nicht mehr und nicht weniger.



  • ich mach dir mal nen Bsp. von dem, was du noch nicht gepostet hast:
    Zeile 684 (bei mir - wird aber nicht ganz unabhängig vom OS sein...):

    BOOLAPI InternetTimeFromSystemTimeA(
        __in CONST SYSTEMTIME *pst,           // input GMT time
        __in DWORD dwRFC,                     // RFC format
        __out_bcount(cbTime) LPSTR lpszTime,  // output string buffer
        __in DWORD cbTime                     // output buffer size
        );
    

    da sollte ja bei dir der erste Fehler kommen...

    bb



  • Exakt das was Brotbernd geschrieben hat, ergibt bei mir die oben genannten Fehler. Von daher würde ich behaupten, dass der gesamte Code drin ist 😉

    @ unskilled:

    Das ist eine von den Zeilen, die da gemeint sind. Soll ich dir jetzt alle raussuchen aus der Bibliothek oder was? Die erste hast du ja zumindest schonmal.

    BOOLAPI InternetTimeFromSystemTimeA(
        __in CONST SYSTEMTIME *pst,           // input GMT time
        __in DWORD dwRFC,                     // RFC format
        __out_bcount(cbTime) LPSTR lpszTime,  // output string buffer
        __in DWORD cbTime                     // output buffer size
        );
    

    Fehler 1 error C2059: Syntaxfehler: ';' c:\program files\microsoft sdks\windows\v6.0a\include\wininet.h 684

    Hierbei ist die letzte Zeile mit folgendem Fehler:

    Fehler 2 error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. c:\program files\microsoft sdks\windows\v6.0a\include\wininet.h 689

    Danach geht es mit der Funktion

    BOOLAPI InternetTimeFromSystemTimeW( ... )
    

    weiter. Wieder ist der erste Fehler beim Funktionsnamen und der 2. Fehler beim ");". Und so geht es weiter.



  • Dann hast du den Header wohl mal kaputt gemacht...

    Steht in Zeile 52 nicht so was in der Richtung:

    #define BOOLAPI INTERNETAPI_(BOOL)
    

    sieht nämlich so aus, als ob er BOOLAPI nicht kennen würde...

    bb



  • Doch das steht bei mir auch in Zeile 52. Und wenn ich zu den definitionen gehe (also per rechtsklick und so) finde ich auch das zugehörige. Zumindest soweit ich weiß was da sein sollte.



  • Zunächst solltest du nicht #include "wininet.h" sondern #include <wininet.h> sdchreiben. Ansonsten kannst du noch versuchen, die Reihenfolge der Header zu varieren. Gerade da entstehen bei den Windows-Headern manchmal seltsame Fehler. Includierst du ansonsten noch was? Eigene Header? Ansonsten check dort, ob da irgendwo ein Semikolon fehlt oder ähnliches... Ansonsten könntest du noch versuchen:

    extern "C" 
    { 
    #include <wininet.h> 
    }
    

    Wobei ich das noch nie gebraucht habe. Und falls du dann irgendwann mal erfolgreich sien solltest, und plötzlich Linker-Fehler erhältst, so musst du noch die lib dazulinken.



  • brotbernd schrieb:

    Dein "Beispiel" kompiliert bei mir einwandfrei.

    #include "windows.h"
    #include <iostream>
    #include "wininet.h"
    
    using namespace std;
    
    int main(int argc, char* argv[])
    {
    	return 0;
    }
    

    Benutzt Du auch Visual Studio 6 (ich hoffe nicht)?
    Hat es einen Grund, dass Du so einen alten Compiler benutzt? Wenn möglich solltest Du etwas neueres wie z.B. VS2008/2010 Express wählen.
    Wenn das nicht möglich ist: Binde die windowsspezifischen Header zu letzt ein.



  • Tachyon schrieb:

    brotbernd schrieb:

    Dein "Beispiel" kompiliert bei mir einwandfrei.

    #include "windows.h"
    #include <iostream>
    #include "wininet.h"
    
    using namespace std;
    
    int main(int argc, char* argv[])
    {
    	return 0;
    }
    

    Benutzt Du auch Visual Studio 6 (ich hoffe nicht)?

    Ich? nee. vc9 oder vc10, weiß nicht mehr welchen bei diesem Bsp.



  • brotbernd schrieb:

    Ich? nee. vc9 oder vc10, weiß nicht mehr welchen bei diesem Bsp.

    Der TO aber schon...



  • Also ich persönlich benutze Visual Studio C++ 2008 Express Edition. Hab mit dem 2005er auch in der Schule gelernt. Die verschiedenen Schreibweisen der Header habe ich bereits ausprobiert es hat allerdings keinen unterschied gemacht.



  • Kompiliert bei mir mit VC++ 2008 Professional ohne Fehler:

    1>------ Build started: Project: foobar, Configuration: Debug Win32 ------
    1>Compiling...
    1>main.cpp
    1>Compiling manifest to resources...
    1>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
    1>Copyright (C) Microsoft Corporation. All rights reserved.
    1>Linking...
    1>Embedding manifest...
    1>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
    1>Copyright (C) Microsoft Corporation. All rights reserved.
    1>Build log was saved at "file://d:\Source\foobar\foobar\Debug\BuildLog.htm"
    1>foobar - 0 error(s), 0 warning(s)
    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

    Hast Du vielleicht das Projekt auf Multibyte umgestellt und verwendest explizit die W Funktionen?



  • Alles kein Grund für Synthax-Fehler...



  • Installier dir mal das neue VIsual Studio Express. Vermutlich hast du eine total alte ungepatche Version drauf.



  • kok,lk schrieb:

    Installier dir mal das neue VIsual Studio Express. Vermutlich hast du eine total alte ungepatche Version drauf.

    ich wiederhole mich nur ungern, aber auch ein altes vs ist kein grund für syntax-fehler in windows-headern... ich wette immernoch, dass er die datei (ausversehen) mal geändert hat...

    bb

    naja, hf



  • Wenn du folgendes machst sollte es gehen. 2 Zeichen können in C so viel bewirken!

    #include <iostream>
    #include <windows.h>
    #include "wininet.h"
    

    Gruß



  • @ Chribher
    Ich hab bereits alle Schreibweisen und Reihenfolgen der Header probiert, hat nichts geändert.

    @ unskilled
    Ich benutze die Bibliothek zum ersten Mal. Ich wüsste also nicht wann ich sie bearbeitet haben sollte. Woher bekomm ich denn die Datei neu oder muss ich dafür visual studio neu installieren?



  • One-Man-Army schrieb:

    muss ich dafür visual studio neu installieren?

    eigtl sollte das eher weniger bringen, weil die windows-api - header vom OS und nicht vom Compiler sind..

    wenn du wirklich ein neues C++-Projekt erstellt hast und die 6Zeilen Code ge-copy&pasted hast, und es trotzdem Fehler gab, hab ich keine Ahnung mehr, wo das Problem liegen könnte...

    Was du aber machen könntest, wäre deine wininet.h mal iwo zu uploaden - vll hast du Glück und der Fehler ist offensichtlich(ausversehen ein ; gelöscht oder so)
    Und interessant wäre es auch mal... : D
    kA, ob sich die wininet.h in den letzten paar windows-versionen geändert hat - es kann jedenfalls auch nicht schaden, wenn du dein OS mal verraten würdest^^

    bb

    PS: "wininet.h" ist nicht besser als <wininet.h>...



  • unskilled schrieb:

    eigtl sollte das eher weniger bringen, weil die windows-api - header vom OS und nicht vom Compiler sind..

    Was für ein Windows benutzt Du denn, dass da Header mit bei sind?


Anmelden zum Antworten