Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
// main.h // #ifndef MAIN_HPP #define MAIN_HPP #include <windows.h> #include <Cube3DEngine.h> #pragma comment(lib, "Cube3DEngine.lib") #define KEY_DOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0) #define KEY_UP(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1) // Klasse erzeugen // class CApplication : public C3E::Cube3DEngine { public: CApplication(){} virtual ~CApplication(){} }; #endif |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
// main.cpp // #include "main.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { MSG msg; HWND hwnd; bool bDone = false; C3E::SCube3DEngineProperties props; CApplication * pApp = new CApplication(); pApp->SetWindowProperties(1200, 1000); pApp->SetWindowColor(0, 0, 255); hwnd = pApp->OpenWindow(hInstance); while(!bDone) { while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); if(KEY_DOWN(VK_ESCAPE)) { bDone = true; PostMessage(hwnd, WM_CLOSE, 0, 0); } } } delete pApp; return 0; } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 |
1>------ Erstellen gestartet: Projekt: Cube3DEngineTest, Konfiguration: Debug Win32 ------ 1>Kompilieren... 1>main.cpp 1>c:\dokumente und einstellungen\patrick\eigene dateien\visual studio 2008\projects\cube3denginetest\cube3denginetest\main.h(19) : error C2512: 'C3E::Cube3DEngine': Kein geeigneter Standardkonstruktor verfügbar 1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Patrick\Eigene Dateien\Visual Studio 2008\Projects\Cube3DEngineTest\Cube3DEngineTest\Debug\BuildLog.htm" gespeichert. 1>Cube3DEngineTest - 1 Fehler, 0 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ========== |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
// Cube3DEngine.h : Definiert die exportierten Funktionen für die DLL-Anwendung. // #include <windows.h> #include "Structures.h" #include "Definitions.h" #ifndef CUBE3DENGINE_HPP #define CUBE3DENGINE_HPP namespace C3E { // Klasse erzeugen // class ME Cube3DEngine { public: Cube3DEngine(); bool Initialize(C3E::SCube3DEngineProperties & props); void SetWindowProperties (const int WindowWidth, const int WindowHeight); void SetWindowColor (int R, int G, int B); HWND OpenWindow (HINSTANCE hInstance); static LRESULT WINAPI MsgProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); private: SCube3DEngineProperties & Cubeprops; static int m_WindowWidth; static int m_WindowHeight; static int m_R; static int m_G; static int m_B; }; } #endif |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
// Cube3DEngine.cpp // #include "Cube3DEngine.h" namespace C3E { int Cube3DEngine::m_WindowHeight; // = 0 int Cube3DEngine::m_WindowWidth; // = 0 int Cube3DEngine::m_R; // = 0 int Cube3DEngine::m_G; // = 0 int Cube3DEngine::m_B; // = 0 Cube3DEngine::Cube3DEngine() { } bool Cube3DEngine::Initialize(C3E::SCube3DEngineProperties & props) { Cubeprops = props; return true; } void Cube3DEngine::SetWindowProperties(const int WindowWidth, const int WindowHeight) { Cubeprops.sWindowWidth = WindowWidth; Cubeprops.sWindowHeight = WindowHeight; } void Cube3DEngine::SetWindowColor(int R, int G, int B) { Cubeprops.ColorRed = R; Cubeprops.ColorGreen = G; Cubeprops.ColorBlue = B; } HWND Cube3DEngine::OpenWindow(HINSTANCE hInstance) { WNDCLASSEX wc; wc.style = CS_HREDRAW | CS_VREDRAW; wc.cbSize = sizeof (wc); wc.lpfnWndProc = MsgProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon (NULL, IDI_APPLICATION); wc.hCursor = LoadCursor (NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH)CreateSolidBrush(RGB(Cubeprops.ColorRed, Cubeprops.ColorGreen, Cubeprops.ColorBlue)); wc.lpszMenuName = NULL; wc.lpszClassName = TEXT ("Cube3DEngine"); wc.hIconSm = LoadIcon (NULL, IDI_APPLICATION); if (RegisterClassEx (&wc) == 0) return 0; return CreateWindowEx (NULL, TEXT("Cube3DEngine"), TEXT("Cube3DEngine"), WS_OVERLAPPEDWINDOW | WS_VISIBLE, GetSystemMetrics(SM_CXSCREEN)/2 - 250, GetSystemMetrics(SM_CYSCREEN)/2 - 187, Cubeprops.sWindowWidth, Cubeprops.sWindowHeight, NULL, NULL, hInstance, NULL); } LRESULT WINAPI Cube3DEngine::MsgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { // key was pressed // case WM_KEYDOWN: { switch (wParam) { case VK_ESCAPE: { PostMessage (hwnd, WM_CLOSE, 0, 0); return 0; } break; default: break; } } break; case WM_DESTROY: { PostQuitMessage (0); return 0; } default: break; } return DefWindowProc(hwnd, msg, wParam, lParam); } } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
// Structures.h // #ifndef STRUCTURES_HPP #define STRUCTURES_HPP #include "Definitions.h" namespace C3E { struct ME SCube3DEngineProperties { int sWindowWidth; int sWindowHeight; int ColorRed; int ColorGreen; int ColorBlue; }; } #endif |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 |
1>------ Erstellen gestartet: Projekt: Cube3DEngine, Konfiguration: Debug Win32 ------ 1>Kompilieren... 1>Cube3DEngine.cpp 1>c:\dokumente und einstellungen\patrick\eigene dateien\visual studio 2008\projects\cube3dengine\cube3dengine\cube3dengine.cpp(15) : error C2758: 'C3E::Cube3DEngine::Cubeprops': muss in der Basisklassen/Element-Initialisierungsliste des Konstruktors initialisiert werden 1> c:\dokumente und einstellungen\patrick\eigene dateien\visual studio 2008\projects\cube3dengine\cube3dengine\cube3dengine.h(28): Siehe Deklaration von 'C3E::Cube3DEngine::Cubeprops' 1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Patrick\Eigene Dateien\Visual Studio 2008\Projects\Cube3DEngine\Cube3DEngine\Debug\BuildLog.htm" gespeichert. 1>Cube3DEngine - 1 Fehler, 0 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ========== |
C-/C++-Quelltext |
|
1 2 3 4 5 |
class ME Cube3DEngine { public: Cube3DEngine(); |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 |
1>------ Erstellen gestartet: Projekt: Cube3DEngine, Konfiguration: Debug Win32 ------ 1>Kompilieren... 1>Cube3DEngine.cpp 1>c:\dokumente und einstellungen\patrick\eigene dateien\visual studio 2008\projects\cube3dengine\cube3dengine\cube3dengine.cpp(15) : error C2758: 'C3E::Cube3DEngine::Cubeprops': muss in der Basisklassen/Element-Initialisierungsliste des Konstruktors initialisiert werden 1> c:\dokumente und einstellungen\patrick\eigene dateien\visual studio 2008\projects\cube3dengine\cube3dengine\cube3dengine.h(28): Siehe Deklaration von 'C3E::Cube3DEngine::Cubeprops' 1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Patrick\Eigene Dateien\Visual Studio 2008\Projects\Cube3DEngine\Cube3DEngine\Debug\BuildLog.htm" gespeichert. 1>Cube3DEngine - 1 Fehler, 0 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ========== |
Zitat von »"Patrick Egli"«
Ja diesen Standartkonstruktor habe ich jetzt programmiert.
Zitat von »"Nox"«
Sieht eher nach seiner eigenen Engine aus....
C-/C++-Quelltext |
|
1 2 3 4 |
Cube3DEngine::Cube3DEngine(): Cubeprops (IrgendEinWert) { } |
Werbeanzeige