본문 바로가기

[Windws Programming] UNREFERENCED_PARAMETER 매크로 가끔가다 Windows Programming 하다보면 자동적으로 제공해주는 기본 틀을 무심코 사용하는데, UNREFERENCED_PARAMTER() 매크로를 보고 이 넘이 뭐하는 건지 잠깐 궁금해 졌다. 간혹 컴파일 하다보면 이런 경고가 튀어 나올때가 있다. warning C4100: 'argc' : unreferenced formal parameter warning C4100: 'argc' : 참조되지 않은 형식 매개 변수입니다. 한마디로, 선언은 해놨지만 쓰이지 않고 있다는 소리다. Console 프로그램의 argc, argv같은 경우나, 프로토타이핑할 때 함수나 클래스의 껍데기만 만들다 보면 주로 발생한다. 사실 별로 상관은 없으니까 무시하면 된다... 그러나!! 계속 눈에 거슬리니까 신경 쓰인다... 더보기
[Windows System] Win32 실행파일(PE)의 구조 지금부터 우리가 흔히 실행 파일 또는 응용 애플리케이션이라고 부르는 EXE파일과 EXE 실행 시에 함께 로드되는 동적 라이브러리 파일인 DLL의 구조와 포맷에 대하여 상세하게 알아본다. 마이크로소프트는 이러한 EXE나 DLL 파일을 Win32 운영체제가 탑재된 플랫폼이라면 어떤 플랫폼에도 관계없이 실행된다는 의미에서 PE(Portable Executable)라고 부른다.따라서 마이크로소프트에서 Excutable이라고 할 때 이것은 EXE 파일뿐만 아니라 DLL까지 포함하는 의미이다. 즉, 인텔 프로세서(CPU) 기반의 윈도우가 탑재된 시스템에서 돌아가는 PE 프로그램은 DEC_ALPHA 프로세서를 탑재한 시스템 상에 인스톨된 Win32 운영체제 하에서도 실행 가능하다는 것이다. 사실 사용자가 식별할 수 .. 더보기
[JLPT] 2011년도 제01회_일본어능력시험 결과발표 아슬아슬 쎄이푸... 이제 한동안 일본어 공부는 빠이빠이... ㅇ_ㅇ;; 영어해야겠다... 더보기
[MASM] 문자열과 배열 1. 문자열 프리미티브 명령 ● 문자열 프리미티브(primitive) - 바이트, 워드, 더블워드의 배열 처리를 위한 Intel 명령 집합에는 5개의 그룹이 있으며, 이를 문자열 프리미티브라고 하지만, 문자 배열로만 국한되지 않는ㄴ다. - 문자열 명령어는 메모리를 참조하기 위해 ESI, EDI 레지스터를 참조한다. - ESI, EDI는 유일하게 단일 메모리 피연산자를 사용하여, 문자열과 배열의 처리에 특히 유용 - 보호모드에서는 ESI는 자동적으로 DS가 가리키는 세그먼트에서의 오프셋이 되고, EDI는 자동적으로 ES가 가리키는 세그먼트 내의 오프셋이 된다. - DS, ES는 항상 같은 값으로 설정되고, 이를 변경할 수 없다. ● 문자열 프리미티브(primitive) 명령 명령어 설명 MOVSB, MO.. 더보기
[MASM] 고급프로시저 (지역변수 선언, 스택 매개변수, 디렉터리) 1. 지역변수 - 단일 프로시저 안에서 생성, 사용, 소멸되는 변수이다. - 지역 변수에 대한 제한된 엑세스는 디버깅할 때 도움을 준다. - 지역 벼수들은 메모리를 효과적으로 사용한다. - 같은 변수 이름은 이름 충돌을 일으키지 않는 한, 두 개 또는 그 이상의 프로시저들에서 나타낼 수 있다. - 지역 변수들은 실행 시 스택에서 생성한다. ● LOCAL 디렉티브 - LOCAL 디렉티브는 하나의 프로시저 내부에서 하나 또는 그 이상의 지역 변수들을 선언한다. - PROC 디렉티브 바로 다음 행에 위치해야 한다. - 지역 변수 사용시, 어셈블러에 의해 코드 생성 - LOCAL 디렉티브에 의한 지역변수 선언 BubbleSort PROC LOCAL temp : DWORD, SwapFlag : BYTE ret B.. 더보기