요즘 좀 프로젝트 말미라 빡시게 돌아간다.


하면서 개인 스터디를 하고 있는데, 하면서 알게된 기초적인 프로그래밍 문법





다들 if문과 switch문이 비슷한 용도로 쓰이는것을 알것이다.

물른 다르지만 비슷하다.


즉 조건식으로 분기를 하기위해 사용되는데 개발자에 따라, 회사간의 정책에 따라 사용하는 방법은 다 다르겠지

Whatever!


나는 vs2005를 사용(.Net 2.0)


if문과 switch문에서 int a = 10을 주고

if( a == 0) ~

else if (a == 1) ~

else if (a == 2) ~

else if (a == 3) ~

~~~


이렇게 흘러가는데 만약 조건에 맞는 식이 저 밑에 있다고 치면 if문을 위에서부터 하나씩 전부 검사하고 내려온다.

이것을 어셈블리어로 확인할 수 있다.


if문에 진입하기 직전에 BreakPoint를 걸고 실행하면 if문앞에서 걸리면서 소스가 나올것이고,

소스화면에서 마우스 오른쪽 -> Go to Disassembly를 통해 확인할 수 있다.


대충 보면(나도 어셈블리어는 모른다 갸초보라 ㅠㅠ) jmp가 그 주소로 이동한다는  소리인데,

if문은 각 else if 문이 끝나는 지점에서 다음 else if 문의 주소로 jmp를 한다.(왜 jmp명령어를 사용하는지는 어셈블리어를 몰라서 모름. return 도 아닌데..)

if문은 이런식이고.....


switch문도 BreakPoint를 직전에 걸고 실행한 후 Disassembly를 통해 보면 switch인 조건식 검사 구문에서 다음 첫 case를 넘어가기 전까지 여기서 조건을 검사한 후 바로 해당 case로 넘어간다. case가 없으면 default가 지정되어 있으면 거기로 넘어가고  아니면 switch문 밖으로 jmp해버린다.


이것이 바로 if문과 switch문의 차이이기 때문에 실제 실행 속도면에서도 조건식이 많을경우 switch문이 빠른것을 알 수 있다.


현재 구상해둔 부분에 대해 기획만 하고 전혀 프로그래밍을 하지않고 있다...


구상은 많다.

다른사람들이 생각이 많은 것처럼 나도 생각해둔 부분이 많고, 기획해둔 부분이 많다.

그래서 어느정도 도식화 시킨것도 있긴 하지만, 이걸 다 할수는 없을것 같고(내 기술이 딸려서 그런것도 있고, 시간도 부족하다),

뭔가 우선순위를 두고 시작은 해봐야 할것 같다.


회사에서 C#으로 새로운 프로젝트를 하나 시작하려 하는것 같은데, 그에 대한 공부와, 프로젝트가 시작되면 거기에 완전 집중해야 하기 때문에 따로 시간을 내기는 어려울 것이다.

제발 뭔가라도 해야하는데....


저번에 시작했었던 후킹 프로그램은 또 귀찮아서 안하고 있따 ㅠㅠ

뭔가 체계적으로 만들어 진 것도 아니고 C#으로 만들다 보니 닷넷과의 연결이 불확실한 xp에서는 작동이 제대로 되지 않는것도 있는것 같아 조금 불안하다.


어쩃든 시작합시다!!! ㅋ


무슨 키가 입력되는지
몇번 입력됐는지
마우스의 유효픽셀 이동거리는 얼마인지
-> 이거슨, 문제가 있는게, 1920x1680모니터에서 화면 끝으로 마우스를 한번에 빨리 움직이면 1680픽셀이 다 인식이 되는것이 아님. 하지만 천천히 움직이면 다 인식됨

 c#으로 만들었고,
윈도xp에서는 트레이로 축소시키면 몇초간의 딜레이가 있음
윈도7 에서는 딜레이 없이 작동 잘 되는듯


차후예상 추가기능 
마우스 클릭 세기
키보드의 키중 제일 많이 입력된 키 랭크 매기기
마우스 픽셀 이동거리 통한 모니터 크기를 받아서 실제 이동거리를 구하기(하루에 몇 m를 갔니 이런거)
 

ClicknTouch.exe

+ Recent posts