TransparentBlt(...) wird nicht "gefunden"
-
hi
ich wollte was mit TransparentBlt(..) blitten, doch der dev cpp + winxp rechner gibt immer wieder den error das er diese funktion nicht kennt, habe wingdi.h include + msimg32.lib includet (über programm und #pragma comment(lib,dielib.lib)
doch daran hat sich nichts geändert, der fehler erscheint immer noch
gruss reima
-
Bekommst du einen Compiler- oder einen Linker-Fehler? Evtl. sind deine Header-/Lib-Files zu alt

-
flenders schrieb:
Bekommst du einen Compiler- oder einen Linker-Fehler? Evtl. sind deine Header-/Lib-Files zu alt

154 C:\Programme\Dev-Cpp\schach-net\winapi.cpp `TransparentBlt' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
C:\Programme\Dev-Cpp\schach-net\Makefile.win [Build Error] [winapi.o] Error 1
zu alt? Ich habe die neuste Versoin der Dev-cpp IDE! daran sollte es eigentlich nicht liegen.
gruss reima
-
Edit: das kommische ist ja das die parameter bei der angabe schön angezeigt werden.
-
Das Pragma versteht Dev-C++ (bzw. der darunterliegende gcc/g++) nicht, das ist m. W. Visual-C++
-spezifisch! Zum Mitlinken der Beispiel.dll bei den Linkeroptionen -lBeispiel angeben (und die Lib in den Pfad der anderen Libs kopieren oder das Verzeichnis der Lib z.B. mit -L zusätzlich angeben)
-
#define WINVER 0x0500 #include <windows.h> int main() { TransparentBlt(NULL, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 0); }
-
Steht zwar auch schon im Code von tippgeber, aber windows.h hast du schon eingebunden, oder?!
-
Es wird wohl an WINVER liegen.

-
Stimmt
Wobei 0x0400 auch schon reichen sollte, zumindest steht bei mir in WinGDI.h:#if (WINVER >= 0x0400)
-
Beim den WinAPI Headern von MinGW ist das aber anders.

-
Na von mir aus

-
ok danke an der WINVERS lag es.
habe es jetzt aber anders gemacht: da ich gelesen hab das die TransparentBlt(..) funktion unter Win98 zu einem Memory Leak führt.
es muss nicht umbedingt transparent sein, je nach standort des Bmp's kommt eine andere Farbe (scharz oder weiss):
HDC PixelEdit(HDC hDC,COLORREF cColor) { COLORREF cTmp; for(int x=0,y=0;y<50;x++) { if(x==50){y++;x=0;} cTmp = GetPixel(hDC,x,y); if(cTmp == RGB(0,255,0)) { SetPixel(hDC,x,y,cColor); } } return hDC; }danke aber trozdem
gruss reima