Fehler beim einbinden von wincrypt.h (BCB2006)



  • Bin Neuling in C++Builder, also bitte nicht zu hard zuschlagen, falls es zu simpel ist 😉

    Mein Programm benutzt CryptoAPI. Ich binde in einem der Headers #include <wincrypt.h>.
    Beim kompillieren kommt:

    [C++ Error] wincrypt.h(38): E2257 , expected
    [C++ Error] wincrypt.h(250): E2257 , expected
    [C++ Error] wincrypt.h(703): E2303 Type name expected
    [C++ Error] wincrypt.h(703): E2139 Declaration missing ;
    [C++ Error] wincrypt.h(705): E2303 Type name expected
    [C++ Error] wincrypt.h(705): E2139 Declaration missing ;

    usw

    hier ist ein beispiel, wo ein fehler passiert:

    #ifdef __cplusplus
    extern "C" {
    #endif
    
    #ifndef _HRESULT_DEFINED
    #define _HRESULT_DEFINED
    typedef LONG HRESULT;            //[C++ Error] wincrypt.h(38): E2257 , expected
    
    #endif // !_HRESULT_DEFINED
    
    #ifndef WINADVAPI
    #define WINADVAPI
    #endif
    

    was tue ich falsch?



  • Ändere die Reihenfolge der #includes, wincrypt.h sollte auf jeden Fall nach der vcl.h eingebunden werden.
    Alternativ solltest du vor wincrypt.h die windows.h einbinden, was sonst implizit die vcl.h mit erledigt.



  • Jansen schrieb:

    Ändere die Reihenfolge der #includes, wincrypt.h sollte auf jeden Fall nach der vcl.h eingebunden werden.
    Alternativ solltest du vor wincrypt.h die windows.h einbinden, was sonst implizit die vcl.h mit erledigt.

    hat geklappt, danke schön!

    oh, c++ builder's fehlermeldungen sagen sogut wie gar nix über das eigentliche problem aus, schade - am sonsten gefällt mir BDS sehr gut...

    nochmals danke für die schnelle antwort 👍



  • Maverick89 schrieb:

    oh, c++ builder's fehlermeldungen sagen sogut wie gar nix über das eigentliche problem aus

    Kommt immer auf das jeweilige Problem an.
    Generell ist es aber nicht Anliegen (oder Aufgabe) des Compilers, dir das Programmieren beizubringen. Wernn er das könnte, dann könnte er ja die Programme auch gleich selber schreiben. 😉



  • Jansen schrieb:

    Kommt immer auf das jeweilige Problem an.
    Generell ist es aber nicht Anliegen (oder Aufgabe) des Compilers, dir das Programmieren beizubringen. Wernn er das könnte, dann könnte er ja die Programme auch gleich selber schreiben. 😉

    Logisch 😃

    Naja, trotzdem: in Visual Studio 2003 kriegte ich viel genauere infos über das problem, und musste sogar an meinem ersten tag in c++ nicht lange suchen.. naja, jedes compiller hat seine vor- und nachteile, immernoch besser als gcc 😃


Anmelden zum Antworten