검색결과 리스트
프로그래밍에 해당되는 글 56건
- 2015.05.07 python 문자열 unicode encode() decode()
- 2014.12.23 pyhton os.path
- 2014.11.05 vs 에서 AlwaysCreate 설정으로 항상빌드하는 현상 제거
- 2014.10.23 std::bind 사용법
- 2014.09.17 ___report_rangecheckfailure() 링크에러
- 2014.09.01 Microsoft Visual Studio C++ 의 try catch 내부 처리방법
- 2014.05.22 [Python] XML <=> Dict <=> JSON
- 2014.02.07 wm_quit vs wm_close vs wm_destroy 차이
- 2014.02.06 HINSTANCE 구하기 GetModuleHandle(NULL)
- 2013.12.17 python 리스트 내장 과 발생자
글
python 문자열 unicode encode() decode()
문자열에는 두가지 타입이 존제
str, unicode
함수 설명
<str>.decode() : str -> unicode
<unicode>.encode() : unicode -> str
unicode는 코드셋이 없음
str은 다양한 코드셋이 있음
str(949) -> unicode : <str>.decode('949')
str(utf8) -> unicode : <str>.decode('utf8')
unicode -> str(949) : <unicode>.encode('949')
unicode -> str(utf8) : <unicode>.encode('utf8')
str(949) -> unicode : unicode(<str>, '949')
str(utf8) -> unicode : unicode(<str>, 'utf8')
* 949 = cp949, ms949 : 다 같은것
'프로그래밍 > Python' 카테고리의 다른 글
python 2 3 호환 코드 짜기 (0) | 2015.11.12 |
---|---|
python 모듈 설치시 'vcvarsall.bat' 에러나는경우 (0) | 2015.05.19 |
[Python] XML <=> Dict <=> JSON (0) | 2014.05.22 |
python 리스트 내장 과 발생자 (0) | 2013.12.17 |
python map, filter, reduce (0) | 2013.11.20 |
글
pyhton os.path
http://devanix.tistory.com/298
'프로그래밍' 카테고리의 다른 글
git 소개 (0) | 2015.08.21 |
---|---|
Visual Assist X 소개 (0) | 2015.08.21 |
vs 에서 AlwaysCreate 설정으로 항상빌드하는 현상 제거 (0) | 2014.11.05 |
std::bind 사용법 (0) | 2014.10.23 |
___report_rangecheckfailure() 링크에러 (0) | 2014.09.17 |
글
vs 에서 AlwaysCreate 설정으로 항상빌드하는 현상 제거
프로젝트 파일 리스트중 실제 파일이 존제하지 않는경우 발생한다
필요없는파일은 제거해주자
'프로그래밍' 카테고리의 다른 글
Visual Assist X 소개 (0) | 2015.08.21 |
---|---|
pyhton os.path (0) | 2014.12.23 |
std::bind 사용법 (0) | 2014.10.23 |
___report_rangecheckfailure() 링크에러 (0) | 2014.09.17 |
Microsoft Visual Studio C++ 의 try catch 내부 처리방법 (0) | 2014.09.01 |
글
std::bind 사용법
std::bind(함수 주소, 함수인자1, 함수인자2, 함수인자3, ...)
함수인자에 초기값을 설정한수 있고
bind로 생성한 함수의 인자로 받을 것이면
std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, ... 등을 새로운 함수 인자와 맵핑 시킬수있다.
void Func( int iA, float fB, bool bC ); |
라는 3개의 인자를 가지는 함수가있다면
auto funcA = std::bind( Func, 10, 2.0f, true ); funcA(); |
다음과 같이 단일 함수로 사용가능하고
그중 float 인자값을 새로운 함수의 인자로 받으려면
auto funcB = std::bind( Func, 10, std::placeholders::_1, true ); funcB( 2.0f ); |
처음인자는 float 두번쩨 인자는 int를 받고 싶으면
auto funcC = std::bind( Func, std::placeholders::_2, std::placeholders::_1, true ); funcC( 2.0f, 10 ); |
3번쩨 인자에 bool 값을 받고 싶으면
auto funcD = std::bind( Func, std::placeholders::_2, std::placeholders::_1, std::placeholders::_3 ); funcD( 2.0f, 10, true ); |
그리고 전역함수가 아닌 클래스 함수의 경우
&ClassA::FuncA 행태를 바인드의 첫번쩨 인자로 사용한다
'프로그래밍' 카테고리의 다른 글
pyhton os.path (0) | 2014.12.23 |
---|---|
vs 에서 AlwaysCreate 설정으로 항상빌드하는 현상 제거 (0) | 2014.11.05 |
___report_rangecheckfailure() 링크에러 (0) | 2014.09.17 |
Microsoft Visual Studio C++ 의 try catch 내부 처리방법 (0) | 2014.09.01 |
wm_quit vs wm_close vs wm_destroy 차이 (0) | 2014.02.07 |
글
___report_rangecheckfailure() 링크에러
http://blogs.msdn.com/b/sdl/archive/2012/01/26/enhancements-to-gs-in-visual-studio-11.aspx
컴파일 옵션에서 /GS 옵션을 빼란 이야기.
'프로그래밍' 카테고리의 다른 글
vs 에서 AlwaysCreate 설정으로 항상빌드하는 현상 제거 (0) | 2014.11.05 |
---|---|
std::bind 사용법 (0) | 2014.10.23 |
Microsoft Visual Studio C++ 의 try catch 내부 처리방법 (0) | 2014.09.01 |
wm_quit vs wm_close vs wm_destroy 차이 (0) | 2014.02.07 |
HINSTANCE 구하기 GetModuleHandle(NULL) (0) | 2014.02.06 |
글
Microsoft Visual Studio C++ 의 try catch 내부 처리방법
비주얼 스튜디오가
try, catch 를
내부적으로
__try, __except
로 처리하는 방법
http://members.gamedev.net/sicrane/articles/exception.html
'프로그래밍' 카테고리의 다른 글
std::bind 사용법 (0) | 2014.10.23 |
---|---|
___report_rangecheckfailure() 링크에러 (0) | 2014.09.17 |
wm_quit vs wm_close vs wm_destroy 차이 (0) | 2014.02.07 |
HINSTANCE 구하기 GetModuleHandle(NULL) (0) | 2014.02.06 |
VS2012 컬러 스킨 변경 (0) | 2013.09.17 |
글
[Python] XML <=> Dict <=> JSON
[Python] XML <=> Dict <=> JSON
'프로그래밍 > Python' 카테고리의 다른 글
python 모듈 설치시 'vcvarsall.bat' 에러나는경우 (0) | 2015.05.19 |
---|---|
python 문자열 unicode encode() decode() (0) | 2015.05.07 |
python 리스트 내장 과 발생자 (0) | 2013.12.17 |
python map, filter, reduce (0) | 2013.11.20 |
python 파일 용량 확인 (0) | 2013.11.19 |
글
wm_quit vs wm_close vs wm_destroy 차이
출처 : http://ssb777.blogspot.kr/2009/07/mfc-wmclose-wmdestroy-wmquit.html
WM_CLOSE
윈도우가 닫히기 전에 이 메시지가 전달되며 메인 윈도우인 경우는 응용 프로그램이 종료된다는 신호이다.
이 메시지를 처리하지 않고 DefWindowProc으로 보내면 DestroyWindow 함수를 호출하여 윈도우를 파괴하도록 한다.
이 메시지가 전달되었을 때는 아직 윈도우가 파괴된 것이 아니므로 윈도우가 파괴되는 것을 중간에 차단할 수 있다.
미저장 파일이 있거나 프로그램을 종료할 상황이 되지 않을 때 사용자에게 메시지 박스를 통해 종료 사실을 확인시킬
수 있으며 이 메시지를 가로채서 단순히 return하면 DestroyWindow가 호출되지 않도록 할 수 있다.
예를 들어 프로그램을 사용자가 닫을 때 "저장할까요?"라는 확인이 필요한 경우 등에 사용할 수 있다.
WM_DESTROY
윈도우가 파괴될 때 이 메시지가 전달된다.
사용자가 Alt+F4 또는 닫기 버튼을 누를 경우 WM_CLOSE 메시지가 전달되며 이 메시지를 별도로 처리하지 않으면
DefWindowProc은 DestroyWindow 함수를 호출하여 윈도우를 파괴한다. 또는 프로그램 코드 내부에서 명시적으로
DestroyWindow 함수를 호출할 때도 윈도우가 파괴되는데 이 함수 호출 결과로 WM_DESTROY 메시지가 전달된다.
이 메시지를 받은 윈도우는 윈도우의 종료를 위한 처리를 해야 하는데 예를 들어 열어 놓은 파일을 닫고 할당한
메모리를 해제하는 등의 정리 작업을 한다. WM_CREATE에서의 초기화 처리의 반대 동작이 이 메시지에 작성되는
것이 일반적이며 그외 레지스트리에 미보관 정보를 저장하는 등의 작업을 할 수 있다. 만약 파괴되는 윈도우가
클립보드 체인에 속해 있으면 자신을 클립보드 체인에서 제거해야 한다.
DestroyWindow 함수는 파괴할 윈도우를 화면에서 숨긴 후 이 메시지를 보내므로 이 메시지를 받은 시점에서는
윈도우 자체가 파괴되지 않은 상태이다. 또한 DestroyWindow 함수는 자식 윈도우에게도 이 메시지를 차례대로
보내주는데 부모 윈도우가 먼저 이 메시지를 받고 자식 윈도우에게로 이 메시지가 보내진다. 따라서 부모 윈도우가
이 메시지를 처리하는 동안은 모든 자식 윈도우가 아직 파괴되기 전이므로 자식 윈도우를 프로그래밍할 수 있다.
파괴되는 윈도우가 메인 윈도우일 경우 PostQuitMessage 함수를 반드시 호출하여 프로세스의 메시지 루프를
종료하도록 해야 한다. 만약 이 처리를 생략하면 윈도우만 파괴되고 메시지 루프는 계속 실행중인 상태가 되므로
프로세스가 종료되지 않는다.
WM_QUIT
응용 프로그램을 종료하라는 신호이다. PostQuitMessage 함수 호출에 의해 발생하며 GetMessage 함수가 0을
리턴하도록 함으로써 메시지 루프를 종료시키는 역할을 한다. GetMessage 함수는 WM_QUIT 이외의 모든 메시지에
대해 0이 아닌 값을 리턴하므로 계속 루프를 돌지만 WM_QUIT에 대해서만 0을 리턴한다.
그래서 메시지 루프는 통상 다음과 같이 작성된다.
while(GetMessage(&Message, 0, 0, 0))
{
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return (int)Message.wParam;
GetMessage 함수가 0이 아닌 값을 리턴하는 동안 무한히 이 루프를 도는데 단 WM_QUIT가 전달될 때는
while문이 종료되며 따라서 WinMain이 종료된다. 메인 윈도우의 WM_DESTROY에서는 반드시 PostQuitMessage
함수를 호출하여 메시지 루프가 종료될 수 있도록 해 주어야 한다. 그렇지 않으면 메인 윈도우는 파괴되었으나
프로세스는 계속 실행중인 상태가 된다.
PeekMessage 함수는 WM_QUIT 메시지와 상관없이 메시지 큐에 메시지가 있는지만 리턴하므로 메시지 루프를
구성할 때 따로 WM_QUIT 메시지를 점검해야 한다.
for(;;)
{
if(PeekMessage(&Message, NULL, 0, 0, PM_REMOVE))
{
if (Message.message == WM_QUIT)
{
break;
}
TranslateMessage(&Message);
DispatchMessage(&Message);
}
else
{
// 백그라운드 작업
}
}
조사한 메시지가 WM_QUIT이면 메시지 루프를 탈출하는 별도의 코드가 필요하다.
WM_QUIT는 윈도우에게 전달되는 메시지가 아니므로 윈도우 프로시저는 이 메시지를 받을 수 없다.
윈도우 프로시저까지 전달되기 전에 메시지 루프에서 이 메시지를 차단하여 루프를 탈출하게 된다.
WM_NCDESTROY
비작업 영역이 파괴될 때 보내진다.
윈도우와 그 차일드들이 먼저 파괴된 후에 비작업 영역이 파괴되므로 이 메시지는 윈도우가 가장 마지막으로 받는 메시지이다.
WM_DESTROY보다 뒤에 발생되며 이 메시지를 받았을 때는 모든 차일드가 이미 파괴된 후이다.
반면 WM_DESTROY 메시지는 차일드가 아직 파괴되기 전이다.
종료 처리가 필요할 경우는 일반적으로 WM_DESTROY 메시지에 코드를 작성하므로 이 메시지는 실용적인 가치가 거의 없는
셈이며 처리하는 경우가 극히 드물다.
'프로그래밍' 카테고리의 다른 글
___report_rangecheckfailure() 링크에러 (0) | 2014.09.17 |
---|---|
Microsoft Visual Studio C++ 의 try catch 내부 처리방법 (0) | 2014.09.01 |
HINSTANCE 구하기 GetModuleHandle(NULL) (0) | 2014.02.06 |
VS2012 컬러 스킨 변경 (0) | 2013.09.17 |
Manual Unpacking (0) | 2013.08.02 |
글
HINSTANCE 구하기 GetModuleHandle(NULL)
HINSTANCE hInstance = (HINSTANCE)GetModuleHandle(NULL);
'프로그래밍' 카테고리의 다른 글
Microsoft Visual Studio C++ 의 try catch 내부 처리방법 (0) | 2014.09.01 |
---|---|
wm_quit vs wm_close vs wm_destroy 차이 (0) | 2014.02.07 |
VS2012 컬러 스킨 변경 (0) | 2013.09.17 |
Manual Unpacking (0) | 2013.08.02 |
XMMATRIX 런타임에러 (0) | 2013.04.19 |
글
python 리스트 내장 과 발생자
- 리스트 내장
- 문법 : [ <수식> for <변수> in <배열, 반복자등> if <조건> ]
- 두개이상의 for문을 중첩 가능하다
- [ <수식>
for <변수> in <배열, 반복자등>
for <변수> in <배열, 반복자등> ...
if <조건> ] - 튜플 리스트로도 출력 가능하다
- [ (<수식1>, <수식2>)
for <변수> in <배열, 반복자등> ...
if <조건> ] - Ex
- [ ( k, j, k + j ) for k in range(3) for j in range(4) if j % 2 ]
- = [ (0, 1, 1), (0, 3, 3), (1, 1, 2), (1, 3, 4), (2, 1, 3), (2, 3, 5) ]
- 발생자
- 문법 : ( <수식> for <변수> in <배열, 반복자등> if <조건> )
- 리스트 내장과 동일하나 [] 대신 () 를 사용한다
- 리스트 내장은 실제 리스트를 생성하나 발생자는 수식을 생성한다 (메모리 효율)
- set 내장?
- 문법 : { <수식> for <변수> in <배열, 반복자등> if <조건> }
- 리스트 내장과 동일하나 [] 대신 {} 를 사용한다
- 리스트 내장은 실제 리스트를 생성하나 {}는 set을 생성한다 (중복 제거)
'프로그래밍 > Python' 카테고리의 다른 글
python 문자열 unicode encode() decode() (0) | 2015.05.07 |
---|---|
[Python] XML <=> Dict <=> JSON (0) | 2014.05.22 |
python map, filter, reduce (0) | 2013.11.20 |
python 파일 용량 확인 (0) | 2013.11.19 |
ubuntu python mysqldb 설치 (0) | 2013.11.18 |