2014년 1월 25일 토요일

[미완] 남자가 사랑할때

[미완] 남자가 사랑할때

신촌 CGV 4관
날짜: 2014.01.25(토)

별: 3개

2014년 1월 23일 목요일

[미완] 쓰레드 실행여부 확인

// 쓰레드 실행
UINT dwThreadID;
HANDLE hThread = (HANDLE)_beginthreadex( NULL, 0, ThreadFunc, NULL, 0, &dwThreadID );

// 실행중인지 확인
DWORD ret = 0;
GetExitCodeThread( hThread, &ret );
if ( STILL_ACTIVE == ret )
{
   // 쓰레드가 아직 실행중임
}

[Win32/MFC] Win32 기본 윈도우창 출력

// Win32 기본창 출력
#include <Windows.h>
#include <tchar.h>

HINSTANCE g_hInst = NULL;

void InitWndClass( HINSTANCE hInstance, LPCTSTR lpszClassName );
int MessageRun( void );
LRESULT CALLBACK WndProc( HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam );

//////////////////////////////////////////////////////////////////////////
// hPrevInstance=16비트 윈도우의 잔재로 항상 NULL값을 가지고 사용하지 않는다.
int APIENTRY _tWinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in_opt LPTSTR lpCmdLine, __in int nShowCmd )
{
 const LPCTSTR lpszClassName = _T("x108zero");

 g_hInst = hInstance;

 // Window Class Struct에 값 입력
 InitWndClass( hInstance, lpszClassName );

 // Windows 생성
 HWND hWnd = CreateWindow( lpszClassName, lpszClassName, WS_OVERLAPPEDWINDOW,
  CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
  NULL, (HMENU)NULL, hInstance, NULL );
 if( NULL == hWnd )
 {
  MessageBox( hWnd, _T("Window Create Error"), _T("Error"), MB_OK );
  return -1;
 }
 ShowWindow( hWnd, nShowCmd );

 // 메시지 처리
 int nMessage = MessageRun();

 return nMessage;
}

//////////////////////////////////////////////////////////////////////////
void InitWndClass( HINSTANCE hInstance, LPCTSTR lpszClassName )
{
 WNDCLASS WndClass;
 ZeroMemory( &WndClass, sizeof(WndClass) );

 WndClass.cbClsExtra  = 0;
 WndClass.cbWndExtra  = 0;
 WndClass.hbrBackground = (HBRUSH)( COLOR_WINDOW + 1 );
 WndClass.hCursor  = LoadCursor( NULL, IDC_ARROW );
 WndClass.hIcon   = LoadIcon(   NULL, IDI_APPLICATION );
 WndClass.hInstance  = hInstance;
 WndClass.lpfnWndProc = WndProc;
 WndClass.lpszClassName = lpszClassName;
 WndClass.lpszMenuName = NULL;
 WndClass.style   = CS_HREDRAW | CS_VREDRAW;

 RegisterClass( &WndClass ); // Window Class 등록
}

//////////////////////////////////////////////////////////////////////////
int MessageRun( void )
{
 MSG Message;
 ZeroMemory( &Message, sizeof(Message) );

 while( GetMessage( &Message, NULL, 0, 0 ) )
 {
  TranslateMessage( &Message );
  DispatchMessage(  &Message );

 } // end of while( GetMessage( &Message, NULL, 0, 0 ) )

 return (int)Message.wParam;
}

//////////////////////////////////////////////////////////////////////////
LRESULT CALLBACK WndProc( HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam )
{
 switch( iMessage )
 {
 case WM_CREATE:
  return 0;

 case WM_PAINT:
  {
   PAINTSTRUCT ps;
   ZeroMemory( &ps, sizeof(ps) );
   HDC hDC = BeginPaint( hWnd, &ps );
   EndPaint( hWnd, &ps );
  }
  return 0;

 case WM_DESTROY:
  PostQuitMessage( 0 );
  return 0;

 } // end of switch( iMessage )

 return DefWindowProc( hWnd, iMessage, wParam, lParam );
}

2014년 1월 21일 화요일

[미완] error C2220: 경고가 오류로 처리되어 생성된 'object' 파일이 없습니다.

error C2220: 경고가 오류로 처리되어 생성된 'object' 파일이 없습니다.

설정
프로젝트 > 속성 > 구성 속성 > C/C++ > 일반 에서
[경고를 오류로 처리]를 "예" or "아니오" 선택

"예"는 말그대로 경고(warning) 발생시 오류(Error)를 발생 하라는 설정으로 컴파일시
error C2220: 경고가 오류로 처리되어 생성된 'object' 파일이 없습니다. 발생함

"아니오" 선택시 경고(warning)는 발생하지만 오류(Error)은 발생하지 않음

2014년 1월 17일 금요일

[미완] NSIS 재부팅 명령어

MessageBox MB_YESNO|MB_ICONQUESTION "재부팅하시겠습니까?" IDNO +2
Reboot
   -> 이것은 중간에 재부팅 메시지 박스가 출력

or

SetRebootFlag true
   -> 이것는 맨 마지막 페이지가 재부팅 하겠습니까?? 나옴 
[출처] NSIS 스크립트에서 자주 사용되는 명령어들 (또는 변수들)|작성자 임재원

2014년 1월 16일 목요일

[미완] 구글 크롬 북마크 없어지는 현상

[미완] 구글 크롬 북마크 없어지는 현상

크롬이 다른 사람(ID)에 동기화가 되어서
어느 순간 다른 사람의 북마크가 설정 된다.

자세한 정보는
크롬 설정에 들어가면
첫번째에 있는 로그인 부분에 다른 ID가 설정 되어 있는지 확인을 한다.

2014년 1월 14일 화요일

[미완] NSIS - 무료 패키징 프로그램

[미완] NSIS - 무료 패키징 프로그램

인스톨쉴드(Installshield)와 같은 Setup파일을 만드는 패키징 프로그램인데 무료인다.

2014년 1월 13일 월요일

[미완] C++ 프로그램 로그파일 만들

#include <time.h>

void GetTime( char* szTime, int nSize )
{
time_t timeNow = time( NULL ); // 현재 시각을 초 단위로 얻기
tm time = { 0, };
localtime_s( &time, &timeNow );

sprintf_s ( szTime, nSize,
"%d-%02d-%02d / %02d:%02d:%02d:",
time.tm_year+1900, time.tm_mon+1, time.tm_mday,
time.tm_hour,   time.tm_min,   time.tm_sec );
}

// 로그파일 만들기 - 유니코드 지원안함
void LogFile( char* szMessage )
{
FILE* pFile = NULL;
fopen_s( &pFile, "LogFile.txt", "a+" );
fseek( pFile, 0, SEEK_SET );

int nLine = 1;
while( !feof( pFile ) )
{
if ( fgetc( pFile ) == 10 ) // 라인 끝에 도착 Line 증가
{
nLine++;
}
}

char szTime[128] = { 0, };
GetTime( szTime, _countof( szTime ) );

fprintf( pFile, "%05d %s %s\n", nLine, szTime, szMessage );

fclose(pFile);
}

#include <iostream>
int main( void )
{
LogFile(  "LogFile테스트" );

        return 0;
}

[미완] _stprintf_s 에러

[미완] _stprintf_s 에러


TCHAR strTemp[128] = { 0, };
_stprintf_s( strTemp, sizeof(strTemp), TEXT("test") );

이때 에러가 발생하면
_stprintf_s( strTemp, countof(strTemp), TEXT("test") );

sizeof(strTemp) -> countof(strTemp) 변경한다.

[미완] 더 울프 오프 월스트리트

날짜: 2014.01.11 (토)
홍대롯데시네마2관

별: 3개반

2014년 1월 7일 화요일

[미완] WM_TIMER 정확한 시간 타이머를 요구할 경우 쓰면 안된다.

[미완] WM_TIMER 정확한 시간 타이머를 요구할 경우 쓰면 안된다.

WM_TIMER은 flag성 메시지라고 한다.
flag성 메시지는 메시지 큐에 들어가는 것이 아니고
GetMessage함수가 메시지 큐에 들어있는 메시지를 다 처리하고 난 후에
처리를 한다.
그러므로 1초마다 WM_TIMER를 발생하게 설정을 해도
만일 메시지 큐안에 처리해야할 메시지들이 많으면 늦게 발생할 수도 있다.
그러므로 정확한 시간 타이머를 요구할 경우에는 권장하지 않는다.

참고로 WM_PAINT도 flag성 메시지다

[미완] string -> char 변환

[미완] string -> char 변환

string str = "1234"
const char* c = str.c_str();

[미완] win32 라디오버튼 체크

CheckRadioButton(hDlg,IDC_RADIO1, IDC_RADIO2, IDC_RADIO2);
hDlg: 윈도우 핸들
IDC_RADIO1: 라디오버튼 첫번째
IDC_RADIO2: 라디오버튼 마지막
IDC_RADIO2: 선택하고 싶은 라디오 버튼

CheckRadioButton과 CheckDlgButton의 차이점은
CheckRadioButton은 선택한 라디오버튼만 체크를 하고 나머지는 다 비체크가 된다.

[미완] Win32 버튼 비활성화

[미완] Win32 버튼 비활성화

HWND hBtn = GetDlgItem( hDlg, IDC_BUTTON1); // 1. 버튼의 핸들을 구함
EnableWindow( hBtn, FALSE ); // 2. 핸들에 활성화(TRUE)/비활성화(FALSE) 값을 줌

2014년 1월 2일 목요일

[미완] 컴퓨터 이름 알아내는 함수

TCHAR szName[256] = { 0, };
DWORD dwSize = 256;
GetComputerName( szName, &dwSize );

[미완] KS7 2013년 송년회

KS7 2013년 송년회

2013년 12월 28일 (토) 19시
배중선, 박상준, 박주오, 이재기 그리고 나

1차: 하오케(메세나폴리스점)   105,000원
2차: 타마시                             74,500원
3차: 빈스앤 와플                     24,800원
코코호도                                   5,000원
4차: PC방                               19,300원
총                                    228,600원