1. 레지스트리중 아래 키값으로 이동
 --> HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/Main

2. Main 권한설정에 "값 설정" 거부를 셋팅.

원복할려면 거부된 권한 설정만 삭제하면 된다.




'지겨운 액티브X’ 공짜로 지워준다

http://www.zdnet.co.kr/ArticleView.asp?artice_id=20090310092215

www.ncsc.go.kr 에서 배포중이고

일정 기간동안 쓰이지 않는 엑티브X를 지울수 있게 도와줍니다.


혹시나 몰라 파일을 첨부하였습니다^^

Visual C++에서 작업 하였다.

출력
CPU Usage : 57.8125%
CPU Usage : 40.625%
CPU Usage : 28.125%
CPU Usage : 29.6875%
CPU Usage : 18.1818%
CPU Usage : 21.875%
CPU Usage : 4.6875%
CPU Usage : 1.5625%


소스
#pragma comment(lib, "pdh.lib")

#include <windows.h>
#include <pdh.h>
#include <pdhmsg.h>
#include <iostream>

using namespace std;

class CpuUsage
{
private:
        PDH_HQUERY              m_hQuery;
        PDH_HCOUNTER    m_hCounter;

public:
        CpuUsage()      :       m_hQuery( 0 ), m_hCounter( 0 )  {}
        ~CpuUsage()             {       destroy();      }

        bool    init()
        {
                PDH_STATUS      status = PdhOpenQuery (0, 0, &m_hQuery);

                if( status != ERROR_SUCCESS )
                        return false;

                status = PdhAddCounter( m_hQuery, "\\Processor(_TOTAL)\\% Processor Time", 0, &m_hCounter );

                if( status != ERROR_SUCCESS )
                        return false;

                status = PdhCollectQueryData( m_hQuery );

                if( status != ERROR_SUCCESS )
                {
                        return false;
                }

                return true;
        }

        void    destroy()
        {
                if( m_hQuery )
                        PdhCloseQuery( m_hQuery );
                m_hQuery = 0;
        }

        bool    getCpuUsage( double * val )
        {
                PDH_STATUS      status = PdhCollectQueryData( m_hQuery );

                if( status != ERROR_SUCCESS )
                        return false;

                PDH_FMT_COUNTERVALUE    value;

                status = PdhGetFormattedCounterValue( m_hCounter, PDH_FMT_DOUBLE,       0, &value);

                if (status != ERROR_SUCCESS)
                        return false;
                *val = value.doubleValue;
                return true;
        }

};


int main( int argc, char * argv[] )
{
        CpuUsage        cpuUsage;
        if( cpuUsage.init() == false )
                return 1;

        while( true )
        {
                double  val = 0.0;
                if( cpuUsage.getCpuUsage( &val ) )
                        cout << "CPU Usage : " << val << "%\n";
                Sleep( 500 );
        }
        cout << "\t\thttp://fehead.tistory.com\n";

        return 0;
}


출력
 
Total : 2096236 free : 1242116


소스
#include <Windows.h>
#include <iostream>

struct ST_MemLog
{
        ULONG   totalMem;
        ULONG   freeMem;
};


bool    getMemLog( ST_MemLog * pMemLog )
{
        static const long       KBYTE = 1024;

        MEMORYSTATUSEX statex;

        statex.dwLength = sizeof (statex);

        if( GlobalMemoryStatusEx( &statex ) == FALSE )
                return false;

        // total Kbytes of physical memory
        pMemLog->totalMem = static_cast<ULONG>( statex.ullTotalPhys / KBYTE );

        // free Kbytes of physical memory.
        pMemLog->freeMem = static_cast<ULONG>( statex.ullAvailPhys / KBYTE );

        return true;
}

int main( int argc, char * argv[] )
{
        ST_MemLog       memLog;

        if( getMemLog( &memLog ) ) {
                cout << "Total : " << memLog.totalMem <<
                        "\tfree : " << memLog.freeMem << endl;
        }
        cout << "\t\thttp://fehead.tistory.com\n";

        return 0;
}


소스예제
#include <windows.h>
#include <iostream>

using namespace std;

int main( int, char *[] )
{
        const int arr[] = {100, 200, 300, 400, 500};

        cout << "_countof(arr)              : " << _countof(arr) << endl;
        cout << "sizeof(arr)                : " << sizeof(arr) << endl;
        cout << "sizeof(arr)/sizeof(arr[0]) : " << sizeof(arr) / sizeof(arr[0]) << endl;

        return 0;
}

결과
_countof(arr)              : 5
sizeof(arr)                : 20
sizeof(arr)/sizeof(arr[0]) : 5


소스를 참고 하시라^^

소스 세이프 2005에서 쓰기 모드로 코딩하기 무척이나 힘듭니다.

쓰기모드로 컴파일도 제대로 못하게 해놔서 참 힘들더군요.

파일 하나를 다른사람이 체크아웃하고 사용중이면 거의 아무것도 못하게 되어있습니다.


그래서 열심히 구글링 해봤으나 못 찾고 결국 하나하나 해서 결국 찾았습니다.


Visual C++ 2008 옵션창에 들어가서



  • 툴--> 옵션

    • 소스제어(Source Control) --> 환경(Environment) 중

      • On Edit --> 단독 체크 아웃 확인(Prompt for exclusive checkouts)

으로 설정하시고 visual C++ 재시작하시고 쓰기 모드로 작업하시면 되겠습니다.


기존에 쓰기 모드로 한 작업들은 위설정으로 바꾸고 GetLast후 다시 작업하셔야 합니다.

윈드밀 1랭을 하니 다른 스킬을 올릴수 있어 좋다.
컴벳 A랭이었는데 현재 6랭으로 올렸다.
디펜스가 D에서 9랭으로 올렸다.

지금까지 키하 솔플만 가능했는데
이제는 라비 하급 솔플도 가능해졌다.

왠만한 던전에 2명 이상이서 가면 잘 깬다^^

진짜 범위가 사기적이다^^.


요즘 회사에서 visual C++ 2003에서 Visual C++ 2008로 컨버팅 작업을 하다가

독자적으로 구현한 hashmapList 라는것이 있는데 이중 iterator 를 구현한것에서 컴파일이 되지 않는 현상이 발생하였다.

참 애매한 컴파일 문제 였는데.

iterator_category 가 구현되어 있지 않다고 에러가 났는데 도무지 모르겠더군요.

소스를 추척하다보니 iterator_traits 이 구현되어 있지 않다는걸 알아 냈는데.

전에 내용을 이해 하지 못한체 읽은 The C++ Programing Language 책에 특성(trait)가 생각나서 봐 보았는데.

이게 바로 에러가 나는 원인이었습니다.

이제서야 이 책의 필요성을 느꼈습니다.

전에는 별 필요성을 못느끼고 의무감에서 봤는데.. 이제는 필요성이 느껴져서 읽을것 같습니다.

책은 필요성은 있어야 재미있게 읽을수 있을것 같습니다.^^
C, C++ 에서 Header 파일 2개간 define이 선언된것을 비교하는 툴을 만들어 보았다.

사용법은

defineCompare firstheader.h secondheader.h
이다

목록이 나오는것은.. header1.h 에는 없지만 header2.h에는 있는 목록이 나오며

defineCompare firstheader.h secondheader.h

defineCompare secondheader.h firstheader.h

결과는 틀리게 나온다.

소스를 첨부한다.



허접소스라 지원하지 않는 명령어가 있고 2중 조건문 등이 있으면 안된다.

인식가능한 키워드는
#ifdef
#else
#endif
#ifndef
#define
#undef
//
/*
*/

이며 #ifdef 등의 2중 조건문이 있으면 안된다.
거의 2랭을 딴지 한 2달, 3달만인것 같다.

강한 몬스터 약 2000마리
매우강한 몬스터 47000마리
보스급 몬스터  1000마리

가량 잡았다.

마지막  3일동안(2009녁 6월 5, 6, 7일) 2000마리에 가까운 좀비 몬스터들을 잡았다.

손가락이 아프다 ㅡ.ㅡ

하지만 윈드밀 2랭에 비해 피해 범위가 사기적으로 늘어 났다.

1랭 만든 보람이 있었다.

다음은 장사나 해볼까?

+ Recent posts