main.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #ifndef main_H
  2. #define main_H
  3. #ifdef _DEBUG
  4. #ifndef _LTMDB
  5. #define _CRTDBG_MAP_ALLOC
  6. #include <stdlib.h>
  7. #include <crtdbg.h>
  8. #define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)
  9. #define new DEBUG_CLIENTBLOCK
  10. #define _LTMDB
  11. #endif
  12. #endif
  13. #define WIN32_LEAN_AND_MEAN
  14. #include <Windows.h>
  15. #define KSGStart __stdcall
  16. namespace Framework
  17. {
  18. // Speichert die dem Programm vom Betriebssystem beim Start übergebenen Parameter
  19. struct Startparam
  20. {
  21. HINSTANCE hinst, hpinst;
  22. LPSTR cmd;
  23. int show;
  24. };
  25. // Überschreibe diese Funktion. Sie wird vom Framework automatisch beim Start des Programmes aufgerufen
  26. // p: Die Parameter, die dem Programm beim Start vom Betriebssystem übergeben wurden
  27. int KSGStart Start( Startparam p );
  28. // Initialisiert das Framework
  29. // Wird in der (WinMain) des Frameworks automatisch aufgerufen
  30. __declspec( dllexport ) void initFramework();
  31. // Gibt den duch (initFramework) benutzten Arbeitsspeicher wieder frei
  32. // Wird in der (WinMain) des Frameworks automatisch aufgerufen
  33. __declspec( dllexport ) void releaseFramework();
  34. }
  35. int WINAPI WinMain( _In_ HINSTANCE hinst, _In_opt_ HINSTANCE hpinst, _In_ LPSTR cmd, int _In_ show )
  36. {
  37. #ifdef _DEBUG
  38. _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
  39. #endif
  40. Framework::initFramework();
  41. Framework::Startparam stp;
  42. stp.hinst = hinst;
  43. stp.hpinst = hpinst;
  44. stp.cmd = cmd;
  45. stp.show = show;
  46. int ret = Framework::Start( stp );
  47. Framework::releaseFramework();
  48. return ret;
  49. }
  50. #endif