wieder einmal wrappen...("read" fehler ohne kompiliermeldungen)
-
am normalen code vom wrapper hat sich nichts geändert, nur beim aufruf. eben mit dem heap->stack. aber bitte..

#include <windows.h> #include "wrapper.h" int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR szCmdLine,int iCmdShow) { Window win; win.szAppTitle="Ein Test :P"; win.Initialize(hInstance,iCmdShow); return win.Loop(); }wenn man das so wie es ist mit -mwindows und wrapper.cpp mitlinkt dann gehts.
(ich hab jetzt die klasse & deklaration getrennt, wie sichs gehört^^)
wolltet ihr den wrapper haben?hier mal die .h
#include <windows.h> class Window { private: HWND hWnd; PAINTSTRUCT ps; HDC hdc; MSG msg; public: LPCSTR szAppName; LPCSTR szAppTitle; Window(); ~Window(); void Initialize(HINSTANCE hInstance,int iCmdShow); int Loop(); };
-
Blackhawk schrieb:
wolltet ihr den wrapper haben?

Willst du den haben:
(Ich sagte ja ich mach mal ein Tut.)/******************************************************************/ /** **/ /** WinAPI - Windows/Controls Wrapper Vorlage **/ /** File: wrapper.h **/ /** Designed für Blackhawk **/ /** **/ /******************************************************************/ #ifndef WRAPPER_H #define WRAPPER_H #include <windows.h> /******************************************************************/ /** Alle Klassen etc. steht ein kleines 'w' vor. **/ /******************************************************************/ /*:::::: Als erstes machen wir unsere Basis Klasse dem Compiler bekannt */ class wBasisControl; /*:::::: Wir brauchen paar Konstanten um zu sehen welcher Controltype gefragt ist */ const int wMasterWindow = 1; const int wOwnerWindow = 2; const int wChildWindow = 3; const int wStandardControl = 4; /*:::::: Nun werden wir einige Typen definieren um Funktionszeiger zu speichern für die Events */ typedef void (*wMouseEvent)(wBasisControl*, int, int, WPARAM); /* void(Object,X,Y,Key_Flags) */ typedef void (*wKeyEvent) (wBasisControl*, int, LPARAM); /* void(Object,Virtual_Key,Key_Data) */ typedef void (*wEvent) (wBasisControl*); /* void(Object) für Events ohne Parameter */ typedef void (*wProcEvent) (wBasisControl*, UINT, LPARAM, WPARAM); /* für sonstige Events mit Parameter */ /*:::::: DIE STATIC GLOBALE WndProc für alle Klassen, hier declardiert */ static LRESULT CALLBACK wBasisWndProc (HWND, UINT, WPARAM, LPARAM); /*:::::: Um einen besseren Überblick zu erhalten, stecken wir die Getter und Setter Funktionen in Klassen */ /*:::::: Die Getter Klasse "->Get->Funktion" */ class wGetter { private: wBasisControl* obj; /* hier einen Zeiger für die Controlklasse */ public: wGetter(wBasisControl*); ~wGetter() {} LPCSTR Caption(); int Width(); int Height(); int Top(); int Left(); long Style(); long StyleEx(); /* weitere könnt ihr dann ergänzen, bzw. in abgeleiteten Klassen ergänzen für diverse Controls */ }; /*:::::: Nun folgt der entsp. Setter, auch diesen dann Ergänzen */ class wSetter { private: wBasisControl* obj; /* wieder der Zeiger zur Controlklasse */ public: wSetter(wBasisControl*); ~wSetter() {} void Caption(LPCSTR); void Width(int); void Height(int); void Top(int); void Left(int); void Style(long); void StyleEx(long); }; /*:::::: Jetzt gehts rund, es folgt die BasisKlasse: */ class wBasisControl { protected: int ClassType; HWND Handle; HWND Parent; HINSTANCE HInstance; long UserData; WNDPROC DefaultWndProc; /* Hier wird sicher noch was folgen, wenn ihr es erweitert */ public: wBasisControl(); wGetter* Get; wSetter* Set; HWND GET_Handle(); HWND GET_Parent(); HINSTANCE GET_Instance(); long GET_UserData(); void SET_UserData(long); int GET_ClassType(); WNDPROC GET_DefaultWndProc(); virtual ~wBasisControl(); wMouseEvent OnMouseMove; wMouseEvent OnMouseDown; wMouseEvent OnMouseUp; wMouseEvent OnDoubleClick; wKeyEvent OnKeyDown; wKeyEvent OnKeyUp; wProcEvent OnMessage; wEvent OnCreate; /* Nah, hier werdet ihr sicherlich noch einiges rein pusten, aber dann auch Basisproc erweitern */ }; /*:::::: Soooo, nun kommt unser erstes Control, das Window ;-) */ class wWindow : public wBasisControl { private: bool isWindow; /* somethink */ public: HWND FastWindowCreate(HINSTANCE, HWND, int, int, LPCSTR, int); /* Hinst.,ParentHandle, width, height, titel,classtype */ ~wWindow(); /* Hier könnt ihr euch dann austoben */ }; class wButton : public wBasisControl { private: bool isButton; public: HWND InitButton(HWND, int, int, int, int, LPCSTR); /* Handle,left,top,width,height,Caption */ ~wButton(); }; /****************************************************************************/ /** So, nun könnt ihr euch austoben und fleisig Controls in Klassen packen **/ /****************************************************************************/ #endifBin mit dem Tut. aber noch nicht fertig, muß ja auch noch was anderes machen
die cpp datei dazu ist aber fertig und funktionstüchtig, muß nur noch alles Überarbeitet werden.
-
häkchen an automatisch einloggen ?!
-
DjFishbone schrieb:
häkchen an automatisch einloggen ?!
Was meinst du damit?
-
Ist das ein "Tutorial" dafür wie man schlechte Wrapper schreibt?
-
rofl. schrieb:
Ist das ein "Tutorial" dafür wie man schlechte Wrapper schreibt?
Ja, genau, gut eraten (erkannt ehr weniger)
-
MichaM. schrieb:
rofl. schrieb:
Ist das ein "Tutorial" dafür wie man schlechte Wrapper schreibt?
Ja, genau, gut eraten (erkannt ehr weniger)
War nicht schwer zu erkennen.

-
dann gib mal deinen her...
-
hab ich gesagt das ich einen habe?

-
eben.. also mach dus mal

-
ok mach ich
