Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <windows.h>
- #include <psapi.h>
- #include <tlhelp32.h>
- #include <string>
- #include <fstream>
- #include <vector>
- #include <Winternl.h>
- #include <map>
- #pragma comment( lib, "psapi.lib" )
- using namespace std;
- class MenuItem
- {
- public:
- string name;
- bool bValue;
- };
- class Menu
- {
- public:
- void AddMenuItem( string name, bool bValue )
- {
- MenuItem* pItem;
- pItem = new MenuItem( );
- pItem->name = name;
- pItem->bValue = bValue;
- items[ name ] = pItem;
- }
- MenuItem* FindMenuItem( string name )
- {
- try
- {
- auto tmp = items.at( name );
- return tmp;
- } catch ( ... )
- {
- return NULL;
- }
- }
- map<string, MenuItem*> items;
- };
- Menu* pMenu;
- long long milliseconds_now( )
- {
- static LARGE_INTEGER s_frequency;
- static BOOL s_use_qpc = QueryPerformanceFrequency( &s_frequency );
- if ( s_use_qpc )
- {
- LARGE_INTEGER now;
- QueryPerformanceCounter( &now );
- return ( 1000LL * now.QuadPart ) / s_frequency.QuadPart;
- } else
- {
- return GetTickCount( );
- }
- }
- int main( )
- {
- MenuItem* pMenuItem;
- pMenu = new Menu( );
- pMenu->AddMenuItem( "a", true );
- pMenu->AddMenuItem( "b", false );
- pMenu->AddMenuItem( "c", true );
- pMenu->AddMenuItem( "d", false );
- pMenu->AddMenuItem( "e", true );
- pMenu->AddMenuItem( "f", false );
- pMenu->AddMenuItem( "g", true );
- pMenu->AddMenuItem( "h", false );
- pMenu->AddMenuItem( "i", true );
- pMenu->AddMenuItem( "j", false );
- pMenu->AddMenuItem( "k", true );
- pMenu->AddMenuItem( "l", false );
- pMenu->AddMenuItem( "m", true );
- pMenu->AddMenuItem( "n", false );
- bool bValue;
- long long dwTickCount;
- while ( true )
- {
- dwTickCount = milliseconds_now( );
- for ( int i = 0; i < 10000; i++ )
- {
- pMenuItem = pMenu->FindMenuItem( "a" );
- if ( pMenuItem != NULL )
- bValue = pMenuItem->bValue;
- pMenuItem = pMenu->FindMenuItem( "b" );
- if ( pMenuItem != NULL )
- bValue = pMenuItem->bValue;
- pMenuItem = pMenu->FindMenuItem( "c" );
- if ( pMenuItem != NULL )
- bValue = pMenuItem->bValue;
- pMenuItem = pMenu->FindMenuItem( "d" );
- if ( pMenuItem != NULL )
- bValue = pMenuItem->bValue;
- pMenuItem = pMenu->FindMenuItem( "e" );
- if ( pMenuItem != NULL )
- bValue = pMenuItem->bValue;
- pMenuItem = pMenu->FindMenuItem( "f" );
- if ( pMenuItem != NULL )
- bValue = pMenuItem->bValue;
- pMenuItem = pMenu->FindMenuItem( "g" );
- if ( pMenuItem != NULL )
- bValue = pMenuItem->bValue;
- pMenuItem = pMenu->FindMenuItem( "h" );
- if ( pMenuItem != NULL )
- bValue = pMenuItem->bValue;
- pMenuItem = pMenu->FindMenuItem( "i" );
- if ( pMenuItem != NULL )
- bValue = pMenuItem->bValue;
- pMenuItem = pMenu->FindMenuItem( "j" );
- if ( pMenuItem != NULL )
- bValue = pMenuItem->bValue;
- pMenuItem = pMenu->FindMenuItem( "k" );
- if ( pMenuItem != NULL )
- bValue = pMenuItem->bValue;
- pMenuItem = pMenu->FindMenuItem( "l" );
- if ( pMenuItem != NULL )
- bValue = pMenuItem->bValue;
- pMenuItem = pMenu->FindMenuItem( "m" );
- if ( pMenuItem != NULL )
- bValue = pMenuItem->bValue;
- pMenuItem = pMenu->FindMenuItem( "n" );
- if ( pMenuItem != NULL )
- bValue = pMenuItem->bValue;
- }
- dwTickCount = milliseconds_now( ) - dwTickCount;
- printf( "The time is %d\n", dwTickCount );
- Sleep( 1000 );
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement