screenshot



  • hab sdk erfolgreich installiert:

    und in projekt die libs eingebunden:

    #include "C:\Programme\Microsoft SDK\include\gdiplusheaders.h"
    #include "C:\Programme\Microsoft SDK\include\gdiplus.h"

    aber 102 error:
    c:\programme\microsoft sdk\include\gdiplusheaders.h(23) : error C2504: 'GdiplusBase' : Basisklasse undefiniert
    c:\programme\microsoft sdk\include\gdiplusheaders.h(28) : error C2629: 'class Region (' unerwartet
    c:\programme\microsoft sdk\include\gdiplusheaders.h(28) : error C2238: Unerwartete(s) Token vor ';'
    c:\programme\microsoft sdk\include\gdiplusheaders.h(29) : error C2629: 'class Region (' unerwartet
    c:\programme\microsoft sdk\include\gdiplusheaders.h(29) : error C2238: Unerwartete(s) Token vor ';'
    c:\programme\microsoft sdk\include\gdiplusheaders.h(30) : error C2629: 'class Region (' unerwartet
    c:\programme\microsoft sdk\include\gdiplusheaders.h(30) : error C2238: Unerwartete(s) Token vor ';'
    c:\programme\microsoft sdk\include\gdiplusheaders.h(38) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'MakeInfinite'
    c:\programme\microsoft sdk\include\gdiplusheaders.h(38) : error C2501: 'Status' : Fehlende Speicherklasse oder Typbezeichner
    c:\programme\microsoft sdk\include\gdiplusheaders.h(39) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'MakeEmpty'
    c:\programme\microsoft sdk\include\gdiplusheaders.h(39) : error C2501: 'Status' : Fehlende Speicherklasse oder Typbezeichner

    versteh das nimma;-(

    thx 👍



  • Gdiplusheaders.h, include gdiplus.h

    Also sollst du nicht direkt Gdiplusheaders.h einbinden, sondern nur gdiplus.h 😉

    Außerdem solltest du die Pfade zum SDK (wenn das bei dir nicht automatisch bzw. über eine Verknüpfung gemacht wurde) unter Extras > Optionen > Verzeichnisse (Include-Dateien / Bibliothekdateien) eintragen (an erster Stelle) - dann brauchst du beim include auch nicht mehr den kompletten Pfad angeben 😉



  • ok hab den pfad angegeben....und include nur mehr gdiplus.h 😉

    dann kommt das:

    --------------------Konfiguration: screen - Win32 Debug--------------------
    Kompilierung läuft...
    main.cpp
    c:\programme\microsoft sdk\include\gdiplusinit.h(32) : error C2065: 'ULONG_PTR' : nichtdeklarierter Bezeichner
    c:\programme\microsoft sdk\include\gdiplusinit.h(32) : error C2065: 'token' : nichtdeklarierter Bezeichner
    c:\programme\microsoft sdk\include\gdiplusinit.h(32) : error C2165: 'left-side modifier' : Zeiger auf Daten koennen nicht veraendert werden
    c:\programme\microsoft sdk\include\gdiplusinit.h(32) : error C2071: 'NotificationHookProc' : ungueltige Speicherklasse
    c:\programme\microsoft sdk\include\gdiplusinit.h(33) : error C2146: Syntaxfehler : Fehlendes ')' vor Bezeichner 'token'
    c:\programme\microsoft sdk\include\gdiplusinit.h(33) : error C2165: 'left-side modifier' : Zeiger auf Daten koennen nicht veraendert werden
    c:\programme\microsoft sdk\include\gdiplusinit.h(33) : error C2071: 'NotificationUnhookProc' : ungueltige Speicherklasse
    c:\programme\microsoft sdk\include\gdiplusinit.h(33) : error C2059: Syntaxfehler : ')'
    c:\programme\microsoft sdk\include\gdiplusinit.h(86) : error C2059: Syntaxfehler : 'const'
    c:\programme\microsoft sdk\include\gdiplusinit.h(95) : error C2146: Syntaxfehler : Fehlendes ')' vor Bezeichner 'token'
    c:\programme\microsoft sdk\include\gdiplusinit.h(95) : warning C4229: Anachronismus verwendet : Modifizierer der Daten werden ignoriert
    c:\programme\microsoft sdk\include\gdiplusinit.h(95) : error C2182: 'GdiplusShutdown' : Ungueltige Verwendung des Typs 'void'
    c:\programme\microsoft sdk\include\gdiplusinit.h(95) : error C2059: Syntaxfehler : ')'
    c:\programme\microsoft sdk\include\gdiplusflat.h(2639) : warning C4229: Anachronismus verwendet : Modifizierer der Daten werden ignoriert
    c:\programme\microsoft sdk\include\gdiplusflat.h(2639) : error C2440: 'initializing' : 'int' kann nicht in 'enum Gdiplus::Status' konvertiert werden
    Konvertierung in einen Aufzaehlungstypen erfordert explizite Typumwandlung (static_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat)
    c:\programme\microsoft sdk\include\gdiplusflat.h(2644) : error C2146: Syntaxfehler : Fehlendes ')' vor Bezeichner 'token'
    c:\programme\microsoft sdk\include\gdiplusflat.h(2644) : warning C4229: Anachronismus verwendet : Modifizierer der Daten werden ignoriert
    c:\programme\microsoft sdk\include\gdiplusflat.h(2644) : error C2182: 'GdiplusNotificationUnhook' : Ungueltige Verwendung des Typs 'void'
    c:\programme\microsoft sdk\include\gdiplusflat.h(2644) : error C2059: Syntaxfehler : ')'
    c:\screen\main.cpp(143) : error C2065: 'Graphics' : nichtdeklarierter Bezeichner
    c:\screen\main.cpp(143) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'graphics'
    c:\screen\main.cpp(143) : error C2065: 'graphics' : nichtdeklarierter Bezeichner
    c:\screen\main.cpp(146) : error C2065: 'Image' : nichtdeklarierter Bezeichner
    c:\screen\main.cpp(146) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'image'
    c:\screen\main.cpp(146) : error C2065: 'image' : nichtdeklarierter Bezeichner
    c:\screen\main.cpp(146) : error C2065: 'L' : nichtdeklarierter Bezeichner
    c:\screen\main.cpp(149) : error C2228: Der linke Teil von '.DrawImage' muss eine Klasse/Struktur/Union sein
    c:\screen\main.cpp(152) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'imageGraphics'
    c:\screen\main.cpp(152) : error C2065: 'imageGraphics' : nichtdeklarierter Bezeichner
    c:\screen\main.cpp(155) : error C2065: 'SolidBrush' : nichtdeklarierter Bezeichner
    c:\screen\main.cpp(155) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'brush'
    c:\screen\main.cpp(155) : error C2065: 'brush' : nichtdeklarierter Bezeichner
    c:\screen\main.cpp(155) : error C2065: 'Color' : nichtdeklarierter Bezeichner
    c:\screen\main.cpp(156) : error C2228: Der linke Teil von '.FillEllipse' muss eine Klasse/Struktur/Union sein
    c:\screen\main.cpp(159) : error C2228: Der linke Teil von '.DrawImage' muss eine Klasse/Struktur/Union sein
    c:\screen\main.cpp(163) : error C2065: 'GetEncoderClsid' : nichtdeklarierter Bezeichner
    c:\screen\main.cpp(164) : error C2228: Der linke Teil von '.Save' muss eine Klasse/Struktur/Union sein
    Fehler beim Ausführen von cl.exe.

    screen.exe - 34 Fehler, 3 Warnung(en)

    noch was vergessen scheint so? sorry mit gdi arbeite ich zum erstn mal wie man merkt....;-(

    thx 👍



  • markoo schrieb:

    c:\programme\microsoft sdk\include\gdiplusinit.h(32) : error C2065: 'ULONG_PTR' : nichtdeklarierter Bezeichner

    Das kommt aus <basetsd.h>. Dieser Header wird über <winnt.h> automatisch eingebunden. Du hast also den Pfad zum aktuellen SDK entweder nicht richtig angegeben, oder die Such-Reihenfolge falsch gesetzt.

    markoo schrieb:

    sorry mit gdi arbeite ich zum erstn mal wie man merkt

    Das ist kein GDI-Problem.



  • -King- schrieb:

    markoo schrieb:

    c:\programme\microsoft sdk\include\gdiplusinit.h(32) : error C2065: 'ULONG_PTR' : nichtdeklarierter Bezeichner

    Das kommt aus <basetsd.h>. Dieser Header wird über <winnt.h> automatisch eingebunden. Du hast also den Pfad zum aktuellen SDK entweder nicht richtig angegeben, oder die Such-Reihenfolge falsch gesetzt.

    markoo schrieb:

    sorry mit gdi arbeite ich zum erstn mal wie man merkt

    Das ist kein GDI-Problem.

    danke king....konnt ich nicht wissen!!
    der pfad ist ja richtig...sosnt würd er ja die #include <gdiplus.h> nicht finden! wie ändert man die such-reihenfolge....in den optionen sdk an stelle 1???

    thx 👍



  • ich hab einfach #include <gdiplus.h> an stelle 1 der inculdes getan und schon geht das *lol* komisch komisch *g*

    hab nun so:

    #include <gdiplus.h>
    #include <winnt.h>
    #include <windows.h> 
    #include <stdlib.h>
    #include <string> 
    #include <sstream> 
    #include <iostream>
    #include <stdio.h>
    using namespace std;
    

    --------------------Konfiguration: screen - Win32 Debug--------------------
    Kompilierung läuft...
    main.cpp
    c:\programme\microsoft sdk\include\gdiplusenums.h(28) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'GraphicsState'
    c:\programme\microsoft sdk\include\gdiplusenums.h(28) : fatal error C1004: Unerwartetes Dateiende gefunden
    Fehler beim Ausführen von cl.exe.

    screen.exe - 2 Fehler, 0 Warnung(en)

    mit diesen header error kann ich nicht anfangen;-)

    thx 👍



    1. Du sollst <winnt.h> nicht direkt inkludieren.
    2. Was steht denn in Zeile 28 und in der Zeile davor? Hast Du in der Zeile davor am Ende ein Semikolon vergessen?


  • -King- schrieb:

    1. Du sollst <winnt.h> nicht direkt inkludieren.
    2. Was steht denn in Zeile 28 und in der Zeile davor? Hast Du in der Zeile davor am Ende ein Semikolon vergessen?

    1.) wie dann winnt.h ?

    2.) das steht is ja die header: gdiplusenums.h!!:

    /**************************************************************************\
    *
    * Copyright (c) 1998-2001, Microsoft Corp.  All Rights Reserved.
    *
    * Module Name:
    *
    *   GdiplusEnums.h
    *
    * Abstract:
    *
    *   GDI+ Enumeration Types
    *
    \**************************************************************************/
    
    #ifndef _GDIPLUSENUMS_H
    #define _GDIPLUSENUMS_H
    
    //--------------------------------------------------------------------------
    // Default bezier flattening tolerance in device pixels.
    //--------------------------------------------------------------------------
    
    const float FlatnessDefault = 1.0f/4.0f;
    
    //--------------------------------------------------------------------------
    // Graphics and Container State cookies
    //--------------------------------------------------------------------------
    
    typedef UINT     GraphicsState;
    typedef UINT     GraphicsContainer;
    .
    .
    .
    

    thx 👍



  • Ah, dann ist's wegen UINT. Also zunächst <windows.h> inkludieren,.



  • -King- schrieb:

    Ah, dann ist's wegen UINT. Also zunächst <windows.h> inkludieren,.

    ich hab so:

    #include <gdiplus.h>
    #include <windows.h> 
    #include <stdlib.h>
    #include <string> 
    #include <sstream> 
    #include <iostream>
    #include <stdio.h>
    using namespace std;
    

    aber gleicher error also 2 error!! ????

    wenn ich so mache:

    #include <gdiplus.h>
    #include <windows.h> 
    .
    .
    .
    

    zb.:
    main.cpp(142) : error C2065: 'Graphics' : nichtdeklarierter Bezeichner
    usw...

    dann hab ich wieder 34 error;-(

    thx 👍



  • bei den 34 error ist so:

    #include <windows.h> 
    #include <gdiplus.h>
    .
    .
    .
    


  • Tja, dann mußt Du die Reihenfolge ändern. Du inkludierst offensichtlich die falsche <windows.h>. Du mußt den Pfad unter Extras->Optionen->Verzeichnisse weiter nach oben holen (dazu markierst Du den Pfad und drückst auf den Pfeil nach oben).



  • -King- schrieb:

    Tja, dann mußt Du die Reihenfolge ändern. Du inkludierst offensichtlich die falsche <windows.h>. Du mußt den Pfad unter Extras->Optionen->Verzeichnisse weiter nach oben holen (dazu markierst Du den Pfad und drückst auf den Pfeil nach oben).

    aso...
    nun habs ich so:

    #include <gdiplus.h>
    #include <windows.h>
    #include <stdlib.h>
    #include <string> 
    #include <sstream> 
    #include <iostream>
    #include <stdio.h>
    using namespace std;
    

    in den optionen bei verzeichnisse hab ich nun SDK include rauf getan!!:

    C:\PROGRAMME\MICROSOFT SDK\INCLUDE
    C:\Programme\Microsoft Visual Studio 6\VC98\INCLUDE
    C:\Programme\Microsoft Visual Studio 6\VC98\MFC\INCLUDE
    C:\Programme\Microsoft Visual Studio 6\VC98\ATL\INCLUDE

    aber:
    --------------------Konfiguration: screen - Win32 Debug--------------------
    Kompilierung läuft...
    main.cpp
    c:\programme\microsoft sdk\include\gdiplusenums.h(28) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'GraphicsState'
    c:\programme\microsoft sdk\include\gdiplusenums.h(28) : fatal error C1004: Unerwartetes Dateiende gefunden
    Fehler beim Ausführen von cl.exe.

    thx 👍



  • Du sollst als erstes <windows.h> inkludieren!



  • -King- schrieb:

    Du sollst als erstes <windows.h> inkludieren!

    ja aber denn kommen wieder mehr error;-(
    habs nun so:

    #include <windows.h>
    #include <gdiplus.h>
    #include <stdlib.h>
    #include <string> 
    #include <sstream> 
    #include <iostream>
    #include <stdio.h>
    using namespace std;
    

    --------------------Konfiguration: screen - Win32 Debug--------------------
    Kompilierung läuft...
    main.cpp
    C:\screen\main.cpp(142) : error C2065: 'Graphics' : nichtdeklarierter Bezeichner
    C:\screen\main.cpp(142) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'graphics'
    C:\screen\main.cpp(142) : error C2065: 'graphics' : nichtdeklarierter Bezeichner
    C:\screen\main.cpp(145) : error C2065: 'Image' : nichtdeklarierter Bezeichner
    C:\screen\main.cpp(145) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'image'
    C:\screen\main.cpp(145) : error C2065: 'image' : nichtdeklarierter Bezeichner
    C:\screen\main.cpp(145) : error C2065: 'L' : nichtdeklarierter Bezeichner
    C:\screen\main.cpp(148) : error C2228: Der linke Teil von '.DrawImage' muss eine Klasse/Struktur/Union sein
    C:\screen\main.cpp(151) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'imageGraphics'
    C:\screen\main.cpp(151) : error C2065: 'imageGraphics' : nichtdeklarierter Bezeichner
    C:\screen\main.cpp(154) : error C2065: 'SolidBrush' : nichtdeklarierter Bezeichner
    C:\screen\main.cpp(154) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'brush'
    C:\screen\main.cpp(154) : error C2065: 'brush' : nichtdeklarierter Bezeichner
    C:\screen\main.cpp(154) : error C2065: 'Color' : nichtdeklarierter Bezeichner
    C:\screen\main.cpp(155) : error C2228: Der linke Teil von '.FillEllipse' muss eine Klasse/Struktur/Union sein
    C:\screen\main.cpp(158) : error C2228: Der linke Teil von '.DrawImage' muss eine Klasse/Struktur/Union sein
    C:\screen\main.cpp(162) : error C2065: 'GetEncoderClsid' : nichtdeklarierter Bezeichner
    C:\screen\main.cpp(163) : error C2228: Der linke Teil von '.Save' muss eine Klasse/Struktur/Union sein
    Fehler beim Ausführen von cl.exe.

    thx 👍



  • Hallo,

    du mußt noch die Zielplattform mit einem Makro definieren, sonst werden einige Definitionen "ausgeblendet. Dazu habe ich schon einmal etwas geschrieben, deshalb nur der Verweis:

    http://www.c-plusplus.net/forum/viewtopic.php?t=60812

    auf den entsprechenden Foren-Eintrag. Ab dem Titel: "SDK-Makros und Projekt-Einstellungen" solltest du mit dem Lesen anfangen...

    MfG



  • Probe-Nutzer schrieb:

    Hallo,

    du mußt noch die Zielplattform mit einem Makro definieren, sonst werden einige Definitionen "ausgeblendet. Dazu habe ich schon einmal etwas geschrieben, deshalb nur der Verweis:

    http://www.c-plusplus.net/forum/viewtopic.php?t=60812

    auf den entsprechenden Foren-Eintrag. Ab dem Titel: "SDK-Makros und Projekt-Einstellungen" solltest du mit dem Lesen anfangen...

    MfG

    na das wird ja immer komplexer;-( ich hab ja winxp...aber möchte ja auch das das bild zum speichern für win2000, winme und 98 geht!!! hmmm....

    ich möchte das über ein #define machen, das man vor die Header des SDK platziert!!!!! was schreib ich in meinem fall da rein!??? sorry aber ich arbeite mit sdk zum ersten mal!
    gar nicht gewusst da so ein abspeichern eines bildes -kompremiert so komplex ist!!;-(

    thx 👍



  • Das Abspeichern an sich ist ja nicht komplex - nur die Codeeinbindung.



  • WebFritzi schrieb:

    Das Abspeichern an sich ist ja nicht komplex - nur die Codeeinbindung.

    bitte helft mir noch da bei den codeeinstellungen....ich will das über ein #define machen, die man vor die Header des SDK platziert!!!!!

    was schreib ich in meinem fall da rein für define!??? hab winxp...will aber das win2000 und winme das speichern klappt...

    danke danke!
    thx 👍



  • ok, setze mal (sicherheitshalber) als erste Zeilen vor alle includes:

    #define WINVER 0x0410
    #define _WIN32_WINDOWS 0x0410
    

    und direkt nach den includes (weil ich das in deinem Code nicht gesehen habe):

    // hinter den includes
    using namespace Gdiplus;
    

    Microsoft hat nämlich GDI+ in einen namespace verpackt..

    MfG


Anmelden zum Antworten