visual studio c++ 2010 express gets errors using gdi
ok i just upgrade it to visual studio c++ 2010 express. when i use gdi+ i get errors not in my file but in the gdi+ header file one of the errors is this c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusimaging.h(74): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
here is the gdi code that i used
VOID OnPaint(HWND hWnd) { GRAPHICS draw; SolidBrush brush(Color(0, 0, 0, 255)); draw.FillEclipse(&brush, 0, 0, 25, 25); }
using vs 2008 it works fine
....................................................................... EDIThere is the error list
1> stdafx.cpp 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusimaging.h(74): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusimaging.h(74): error C2440: 'initializing' : cannot convert from 'const char [37]' to 'int' 1> There is no context in which this conversion is possible 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusimaging.h(74): error C2146: syntax error : missing ';' before identifier 'IImageBytes' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusimaging.h(74): error C2470: 'IImageBytes' : looks like a function definition, but there is no parameter list; skipping apparent body 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusimaging.h(74): error C2059: syntax error : 'public' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusimaging.h(280): error C2146: syntax error : missing ';' before identifier 'id' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusimaging.h(280): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusimaging.h(280): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(384): error C2061: syntax error : identifier 'IStream' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(395): error C2061: syntax error : identifier 'IStream' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(405): error C2061: syntax error : identifier 'IStream' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(443): error C2061: syntax error : identifier 'PROPID' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(444): error C2061: syntax error : identifier 'PROPID' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(445): error C2061: syntax error : identifier 'PROPID' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(453): error C2061: syntax error : identifier 'PROPID' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(471): error C2535: 'Gdiplus::Image::Image(void)' : member function already defined or declared 1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(384) : see declaration of 'Gdiplus::Image::Image' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(505): error C2061: syntax error : identifier 'IStream' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(516): error C2061: syntax error : identifier 'IStream' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(758): error C2061: syntax error : identifier 'IStream' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(813): error C2061: syntax error : identifier 'IStream' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(813): error C2535: 'Gdiplus::Metafile::Metafile(void)' : member function already defined or declared 1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(758) : see declaration of 'Gdiplus::Metafile::Metafile' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(820): error C2061: syntax error : identifier 'IStream' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(820): error C2535: 'Gdiplus::Metafile::Metafile(void)' : member function already defined or declared 1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(758) : see declaration of 'Gdiplus::Metafile::Metafile' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(829): error C2061: syntax error : identifier 'IStream' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(829): error C2535: 'Gdiplus::Metafile::Metafile(void)' : member function already defined or declared 1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(758) : see declaration of 'Gdiplus::Metafile::Metafile' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(855): error C2061: syntax error : identifier 'IStream' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(923): error C2535: 'Gdiplus::Metafile::Metafile(void)' : member function already defined or declared 1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(758) : see declaration of 'Gdiplus::Metafile::Metafile' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1133): error C2065: 'IStream' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1133): error C2065: 'stream' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1133): error C2065: 'image' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1133): error C2275: 'Gdiplus::GpImage' : illegal use of this type as an expression 1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusgpstubs.h(61) : see declaration of 'Gdiplus::GpImage' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1133): warning C4229: anachronism used : modifiers on data are ignored 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1133): error C2078: too many initializers 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1139): error C2065: 'IStream' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1139): error C2065: 'stream' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1139): error C2065: 'image' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1139): error C2275: 'Gdiplus::GpImage' : illegal use of this type as an expression 1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusgpstubs.h(61) : see declaration of 'Gdiplus::GpImage' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1139): warning C4229: anachronism used : modifiers on data are ignored 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1139): error C2078: too many initializers 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1156): error C2061: syntax error : identifier 'IStream' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1244): error C2061: syntax error : identifier 'PROPID' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1247): error C2061: syntax error : identifier 'PROPID' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1250): error C2061: syntax error : identifier 'PROPID' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1262): error C2061: syntax error : identifier 'PROPID' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1286): error C2065: 'IStream' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h开发者_StackOverflow(1286): error C2065: 'stream' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1286): error C2065: 'bitmap' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1286): error C2275: 'Gdiplus::GpBitmap' : illegal use of this type as an expression 1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusgpstubs.h(62) : see declaration of 'Gdiplus::GpBitmap' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1286): warning C4229: anachronism used : modifiers on data are ignored 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1286): error C2078: too many initializers 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1292): error C2065: 'IStream' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1292): error C2065: 'stream' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1292): error C2065: 'bitmap' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1292): error C2275: 'Gdiplus::GpBitmap' : illegal use of this type as an expression 1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusgpstubs.h(62) : see declaration of 'Gdiplus::GpBitmap' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1292): warning C4229: anachronism used : modifiers on data are ignored 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(1292): error C2078: too many initializers 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2222): error C2065: 'IStream' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2222): error C2065: 'stream' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2224): error C2065: 'header' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2224): error C2275: 'Gdiplus::MetafileHeader' : illegal use of this type as an expression 1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetaheader.h(112) : see declaration of 'Gdiplus::MetafileHeader' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2224): warning C4229: anachronism used : modifiers on data are ignored 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2224): error C2078: too many initializers 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2242): error C2061: syntax error : identifier 'IStream' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2262): error C2065: 'IStream' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2262): error C2065: 'stream' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2262): error C2065: 'metafile' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2262): error C2275: 'Gdiplus::GpMetafile' : illegal use of this type as an expression 1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusgpstubs.h(63) : see declaration of 'Gdiplus::GpMetafile' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2262): warning C4229: anachronism used : modifiers on data are ignored 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2262): error C2078: too many initializers 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2309): error C2065: 'IStream' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2309): error C2065: 'stream' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2310): error C2275: 'HDC' : illegal use of this type as an expression 1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\windef.h(267) : see declaration of 'HDC' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2310): error C2146: syntax error : missing ')' before identifier 'referenceHdc' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2310): warning C4229: anachronism used : modifiers on data are ignored 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2310): error C2078: too many initializers 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2310): error C2275: 'HDC' : illegal use of this type as an expression 1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\windef.h(267) : see declaration of 'HDC' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2316): error C2059: syntax error : ')' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2320): error C2065: 'IStream' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2320): error C2065: 'stream' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2321): error C2275: 'HDC' : illegal use of this type as an expression 1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\windef.h(267) : see declaration of 'HDC' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2321): error C2146: syntax error : missing ')' before identifier 'referenceHdc' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2321): warning C4229: anachronism used : modifiers on data are ignored 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2321): error C2078: too many initializers 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2321): error C2275: 'HDC' : illegal use of this type as an expression 1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\windef.h(267) : see declaration of 'HDC' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusflat.h(2327): error C2059: syntax error : ')' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdipluspath.h(133): error C2061: syntax error : identifier 'byte' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(75): error C2065: 'IStream' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(75): error C2065: 'stream' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(76): error C2448: 'Gdiplus::Metafile::{ctor}' : function-style initializer appears to be a function definition 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(194): error C2065: 'IStream' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(194): error C2065: 'stream' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(195): error C2275: 'HDC' : illegal use of this type as an expression 1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\windef.h(267) : see declaration of 'HDC' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(195): error C2146: syntax error : missing ')' before identifier 'referenceHdc' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(195): error C2761: '{ctor}' : member function redeclaration not allowed 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(198): error C2059: syntax error : ')' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(199): error C2143: syntax error : missing ';' before '{' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(199): error C2447: '{' : missing function header (old-style formal list?) 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(211): error C2065: 'IStream' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(211): error C2065: 'stream' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(212): error C2275: 'HDC' : illegal use of this type as an expression 1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\windef.h(267) : see declaration of 'HDC' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(212): error C2146: syntax error : missing ')' before identifier 'referenceHdc' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(212): error C2761: '{ctor}' : member function redeclaration not allowed 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(217): error C2059: syntax error : ')' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(218): error C2143: syntax error : missing ';' before '{' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(218): error C2447: '{' : missing function header (old-style formal list?) 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(230): error C2065: 'IStream' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(230): error C2065: 'stream' : undeclared identifier 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(231): error C2275: 'HDC' : illegal use of this type as an expression 1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\windef.h(267) : see declaration of 'HDC' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(231): error C2146: syntax error : missing ')' before identifier 'referenceHdc' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(231): error C2761: '{ctor}' : member function redeclaration not allowed 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(236): error C2059: syntax error : ')' 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\gdiplusmetafile.h(236): fatal error C1003: error count exceeds 100; stopping compilation
If you have this line somewhere before the inclusion of <windows.h>
#define WIN32_LEAN_AND_MEAN
Then comment it out.
I too was getting error C2061: syntax error: identifier 'Bitmap'
.
This error was caused by a header file for this declaration:
bool LoadBitmapFromPNG(UINT, Bitmap**);
I solved this by fully qualifying the Bitmap class like so:
LoadBitmapFromPNG(UINT, Graphics::Bitmap**);
or
using namespace Gdiplus;
bool LoadBitmapFromPNG(UINT, Bitmap**);
Either of the 2 methods work.
精彩评论