// http://www.androidpub.com/1851206
CODING(C)
- 안드로이드 게임 개발 지침. 2017.04.14
- [python2.7]백준 170413-14 input, raw_input / split 2017.04.13
- SetWindowsHookEx 2016.07.27
- window API 주요 구조체 및 변수 2016.07.27
- 함수 포인터 선언시 typedef를 사용하는 이유 2016.07.27
안드로이드 게임 개발 지침.
[python2.7]백준 170413-14 input, raw_input / split
1. 입출력 문제
# 1000
raw_input은 날것으로 문자열로 잘라서 저장하고,
input은 유두리있게 숫자는 숫자로 (int, float) 문자열은 문자로 ""로 감싸져 있는경우만, 아니면 오류) 저장한다.
//참고 http://gangju.tistory.com/6
a.split(s)는
a(문자열)을 s기준으로 잘라서,
나눠진 문자열 리스트로 반환한다.
join은 나눠진 리스트를 문자열로 반환
//참고 http://agiantmind.tistory.com/31
//http://ourcstory.tistory.com/46
[입력] 1 2 [출력] 3 |
[코드] input=raw_input() inputS=input.split() print int(inputS[1]) + int(inputS[0])
|
A B =input()
print A,B
이렇게, 공백으로 문자를 나누어 받는것은 안된다.
A,B =input()
print A,B
[코드] print "|\_/|" print "|q p| /}" print "( 0 )\"\"\"\\" print "|\"^\"` |" print "||_/=\\\\__|"
|
# -*- coding: cp949 -*- print "강한친구 대한육군" print "강한친구 대한육군"
|
SetWindowsHookEx
SetWindowsHookEx
1. 역할
: 특정 hook을 설치해둔다. (모든 프로세스가 체크 됨)
그러면, 어떤 프로세스에서 해당 메시지가 발생햇을 때
OS가 해당DLL파일을 해당 프로세스에 injection하고
등록된 hook procedure을 호출
즉, injection하고 바로 내가 원하는 콜백함수 호출.
2. 인자 값
- int idHook // hook type
- HOOKPROC lpfn // hook procedure은 운영체제가 호출해주는 콜백 함수 DLL 내부에 존재해야 한다. ex)KeyboardProc
- HINSTANCE hMod // 위 함수가 속한 DLL의 인스턴스 핸들
- DWORD dwThreadId // hook을 걸고 싶은 thread의 ID 값 ex) 0을 넣으면 global hook이 설치된다.
3. 반환 값
'CODING(C) > WIN API 32' 카테고리의 다른 글
window API 주요 구조체 및 변수 (0) | 2016.07.27 |
---|
window API 주요 구조체 및 변수
참고 블로그 : http://sweeper.egloos.com/m/2991972 |
윈도우 프로그램에서는
하나의 프로그램이 많은 윈도우들을 가질 수 있고,
하나의 프로그램이 여러 개의 모듈 즉, (메모리에 올라간) 코드 덩어리들을 가지고 있을 수 있다.
HINSTANCE / HMODULE
: 프로그램 코드를 담고 있는 모듈(메모리에 올라가있는)/인스탄스에 대한 핸들.
cf) HMODULE과 HINSTANCE는 32비트에서는 같은 의미로 사용된다고 봐도 무관하다.
32비트 윈도우에서 인스턴스 핸들은 메모리 공간에 할당된 실행 모듈의 베이스주소(0x00400000)를 가리킨다.
HWND
: 화면 출력을 위해 여러 윈도우들의 영역을 관리하는 리소스.
WPARAM
: unsigned int형, 주요정보 (주로 window procedure이나 callback function 의 인자)
LPARAM
: signed int형, 추가정보
'CODING(C) > WIN API 32' 카테고리의 다른 글
SetWindowsHookEx (0) | 2016.07.27 |
---|
함수 포인터 선언시 typedef를 사용하는 이유
typedef는
" 자료형을 정의 " 해주는 역할
즉, 이미 있는 기존의 자료형에 또다른 이름을 붙여주는 역할을 합니다.
ex)
typedef unsigned int MYUNIT;
구조체 선언시에 struct my를 MY로 줄여쓰기 위해 자주 사용됩니다.
주의) MY는 구조체 변수가 아니라 struct my 의 줄임말일 뿐.
함수포인터 변수는
ex)
int sum(int a, int b)
{
return a+b;
}
int main()
{
int (*pf)(int,int);
sum=pf;
pf(2,3)
}
이렇게 기존의 함수선언과 동일한 상태에서 이름만 (*이름)으로 바꾸어서 선언합니다.
이러한 typedef를 사용하여 함수포인터변수를 하나의 자료형으로 정의하는 것은
바로, 함수포인터변수를 보기쉽게 선언하기 위해서 입니다.
ex)
typedef int (*PF)(int,int); //자료형을 정의
int sum(int a, int b)
{
return a+b;
}
int main()
{
PF pf ;
sum=pf ;
pf(2,3);
}