Mit Dev-C++ Compiler jpg Datein verarbeiten?
-
Bin noch neu hier wusste nicht so
recht wo es rein passt :-).
Bitte einmal schieben Admin Danke
-
Du kannst ein "IPicture" einfach nicht mit IDirectDrawSurface7::Blt blitten.
Du musst eine Surface erstellen, und dann irgendwie das Bild in diese Surface bekommen. Dann kannst du diese Surface verwenden um zu blitten.Wo hast du denn diesen Code her? Bzw. wie kommst du auf die Idee dass es so gehen könnte?
p.S.: ein Bild bekommst du am einfachsten in eine Surface, indem du die einen DC von der Surface holst, und dann mit den ganz normalen GDI Funktionen da reinmalst. Da sollte es auch Funktionen geben die ein IPicture in einen DC malen können.
-
Hallo hustbaer,
die Informationen habe ich über google gefunden und ein
wenig herumprobiert weil es in Normalzustand nicht ging.
Hast du einen Script für mich der geht?Ich hab mein Programm jetzt um eine Funktion erweitert:
BOOL Bild_anzeigen(HWND hwnd) { HDC hdc = CreateIC(TEXT("DISPLAY"), NULL, NULL, NULL); if(pPicture) //wenn bild geladen { RECT rc; GetClientRect(hwnd, &rc); //Bild anzeigen mittels Render pPicture->Render(hdc, 0, 0, iWidth, iHeight, 0, lHeight, lWidth, -lHeight, &rc); return TRUE; } return FALSE; }Dan schreibe ich anstatt diesem:
lpddsBack->Blt(&bild_map, pPicture , NULL, DDBLT_WAIT | DDBLT_KEYSRC , NULL );das hin:
Bild_anzeigen(hwnd);Das Programm wird dann auch erfolgreich Kompiliert aber
es passiert nichts
Wie komme ich zu meinem Bild?
-
Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
hab gerade einen Anderen Weg entdeckt wie ich es auch Lössen könnte
mit dieser Funktion:D3DXCreateTextureFromFile( )es lassen sich aber die dafür nötigen Funktionen und Klassen nicht
in meinem wxDev-C++ Compiler laden.#include </Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3dx9.h>Diese Fehlermeldungen kommen dann immer:
Compiler: Default GCC compiler Building Makefile: "F:\CC++ Test\Direct_X\Makefile.win" Führt make... aus mingw32-make.exe -f "F:\CC++ Test\Direct_X\Makefile.win" all g++.exe -c direct_x_fenster_02/direct_x_fenster_02.cpp -o Objects/MingW/direct_x_fenster_02.o -I"F:/Programme_Installiert/DevC++/Dev-Cpp/lib/gcc/mingw32/3.4.5/include" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/c++/3.4.5/backward" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/c++/3.4.5/mingw32" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/c++/3.4.5" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/3rdparty/wx/plotctrl" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/3rdparty/wx/sheet" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/3rdparty/wx/treemultictrl" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/3rdparty/wx/things" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/3rdparty/wx" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/3rdparty" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/common/wx/msw" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/common/wx/generic" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/common/wx/fl" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/common/wx/gizmos" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/common/wx/html" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/common/wx/mmedia" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/common/wx/net" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/common/wx/ogl" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/common/wx/plot" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/common/wx/protocol" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/common/wx/stc" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/common/wx/svg" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/common/wx/xml" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/common/wx/xrc" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/common/wx" -I"F:/Programme_Installiert/DevC++/Dev-Cpp/include/common" -D__WXMSW__ -D__GNUWIN32__ -D__WIN95__ -DWXUSINGDLL -fno-exceptions -fno-pcc-struct-return -fstrict-aliasing -Wall -D__WXMSW__ -D__GNUWIN32__ -D__WIN95__ -fexpensive-optimizations -O3 In file included from /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3d9.h:260, from /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3dx9.h:46, from direct_x_fenster_02/direct_x_fenster_02.cpp:43: /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3d9types.h:25: warning: ignoring #pragma warning /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3d9types.h:2007: warning: ignoring #pragma warning In file included from /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3dx9.h:46, from direct_x_fenster_02/direct_x_fenster_02.cpp:43: /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3d9.h:1986:1: warning: "/*" within comment /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3d9.h:1987:1: warning: "/*" within comment In file included from /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3dx9.h:47, from direct_x_fenster_02/direct_x_fenster_02.cpp:43: /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3dx9math.h:19: warning: ignoring #pragma warning In file included from /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3dx9math.h:1787, from /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3dx9.h:47, from direct_x_fenster_02/direct_x_fenster_02.cpp:43: /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3dx9math.inl: In static member function `static void* _D3DXMATRIXA16::operator new(size_t)': /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3dx9math.inl:993: warning: `operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect) /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3dx9math.inl: In static member function `static void* _D3DXMATRIXA16::operator new [](size_t)': /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3dx9math.inl:1008: warning: `operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect) In file included from /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3dx9.h:47, from direct_x_fenster_02/direct_x_fenster_02.cpp:43: /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3dx9math.h: At global scope: /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3dx9math.h:1792: warning: ignoring #pragma warning In file included from /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3dx9.h:48, from direct_x_fenster_02/direct_x_fenster_02.cpp:43: /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3dx9core.h:669:1: warning: multi-line comment In file included from /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3dx9.h:51, from direct_x_fenster_02/direct_x_fenster_02.cpp:43: /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3dx9shader.h:955: error: `DECLSPEC_DEPRECATED' does not name a type /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3dx9shader.h:964: error: `DECLSPEC_DEPRECATED' does not name a type /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3dx9shader.h:980: error: `DECLSPEC_DEPRECATED' does not name a type /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3dx9shader.h:990: error: `DECLSPEC_DEPRECATED' does not name a type /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3dx9shader.h:1007: error: `DECLSPEC_DEPRECATED' does not name a type mingw32-make.exe: *** [Objects/MingW/direct_x_fenster_02.o] Error 1 Ausführung beendet Compilation Failed. Make returned 2Kann es sein das der wxDev-C++ für DirectX Programmierung nicht geeignet ist?
-
Schon die erste Warnung sollte doch heißen daß der Dev-C++ Compiler nicht korrekt mit den #pragma Statements in den Headerfiles umgehen kann:
Meiko schrieb:
In file included from /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3d9.h:260, from /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3dx9.h:46, from direct_x_fenster_02/direct_x_fenster_02.cpp:43: /Programme_Installiert/DirectX_SDK_Marz_2009/Include/d3d9types.h:25: warning: ignoring #pragma warningKann es sein das der wxDev-C++ für DirectX Programmierung nicht geeignet ist?
ich denke mal, daß das gar nichts mit DirectX / Direct3D zu tun hat, sondern schlicht und einfach Dein Dev-C++ Compiler (hoffnungslos) veraltet ist.
Im prinzip hast Du hier nur noch zwei Möglichkeiten:
- Die Headerfiles so umschreiben, daß sie der Dev-C++ Compiler versteht (viel Arbeit, und noch viel mehr Arbeit bei der Fehlersuche wenns nicht auf Anhieb funktioniert!)
- Die bessere Alternative: Aktuellere Entwicklungsumgebungen verwenden (z.B. Borland C++ Builder oder Visual C++ 2008 Express Edition, meinetwegen auch den alten Visual C++ 6)Martin
-
Hi Martin,
ich Arbeite mit der neusten Version vom Dev-C++ Compiler,
Version 7.0 RC5. Einen neueren gibt es nicht.Also kann man davon ausgehen das der wxDev-C++ nicht
geeignet ist für DirectX Programmierung.Die Entwicklungsumgebungen die du genannt hast sind natürlich
Top da gibt es nix aber sie kosten auch eine Stange Geld.
Der wxDev-C++ ist dagegen kostenlos.Gibt es den noch andere alternativen die Kostenlos sind
mit denen man ohne Probleme DirectX Programmieren kann?Gruß Meiko
-
Meiko schrieb:
Die Entwicklungsumgebungen die du genannt hast sind natürlich
Top da gibt es nix aber sie kosten auch eine Stange Geld.Das stimmt nicht. Die Express Edition von MS VC 2008 ist tatsächlich kostenlos. Dazu brauchst du dann noch das Platform SDK, damit du sinnvoll Windowsprogramme basteln kannst. Näheres hier: http://www.c-plusplus.net/forum/viewtopic-var-t-is-143003.html
Das DirectX-SDK kannst du dann analog zum PSDK installieren.
-
Hallo Martin,
habe die anderen Entwicklungsumgebungen versucht bei mir auf Arbeit zu
Installieren aber es geht leider nicht nur der Dev-C++ Compiler
läßt es zu sich zu Installieren ohne Administrator rechten.
Daher bleibt mir nur der Dev-C++ Compiler zur verfügung
außer ich kann den Admin mal überzeugen ;-).Die Funktion wie ich sie Oben geschrieben habe scheint
ja zu Funktionieren das Bild wird geladen doch
wie bekomme ich das bild wieder zu fassen?
Die Funktion Bild_anzeigen(hwnd); Funktioniert nicht.Ist sie Falsch geschrieben wen ja wie komme ich an
mein Bild ran?gruß Meiko
-
-
Meiko schrieb:
...bei mir auf Arbeit...
...außer ich kann den Admin mal überzeugen ;-)...Wenn du das für die Arbeit brauchst - wovon ich ausgehe - sag dem Admin, dass es ein essentielles Werkzeug ist und er es installieren muss, damit du deine Arbeit machen kannst. Sage ihm, dass du dies auch gerne deinen Vorgesetzen mitteilen würdest, sollte er es nicht einsehen

So klappte das bei mir. Mittlerweile habe ich eine Developermachine, wo ich selbst Admin bin. Ist streßfreier...
