본문 바로가기

어셈블리

[MASM 강좌] 튜토리얼 4 : Painting with Text 튜토리얼 4: Painting with Text 이번 튜토리얼에서는 윈도우의 클라이언트 영역에 "paint" 라는 텍스트를 출력하는 방법에 대해서 배워 보도록 하겠습니다. 또한 디바이스 컨텍스트(Device Context)에 대해서도 배울 것입니다. 소스코드는 여기에서 받으시면 됩니다. 이론: Windows 에서 텍스트(text)는 GUI 객체 타입입니다. 각 문자는 고유한 패턴에 맞춰진 수 백개의 픽셀 집합으로 이루어져 있습니다. 이것이 바로 "기록(writing)" 라는 말 대신 "그리기(painting)" 이라고 불리는 이유입니다. 일반적으로, 자신의 클라이언트 영역 안에 텍스트를 그려 넣을 수 있습니다.(사실, 자신의 클라이언트 영역 밖에다가 텍스트를 그려 넣을 수도 있지만 그것은 다른 주제입니다.. 더보기
[MASM 강좌] 튜토리얼 3 : A Simple window 튜토리얼 3: A Simple Window 이번 튜토리얼에서는 화면 위에 모든 기능을 가지고 있는 윈도우를 생성하는 Windows 프로그램을 만들어 보도록 하겠습니다. 예제 파일은 여기에서 받으시기 바랍니다. 이론: Windows 프로그램은 GUI 를 위해서는 API 함수에 매우 의존적인데, 이는 사용자나 개발자 모두에게 도움이 됩니다. 사용자는 Windows 프로그램들의 GUI가 다 비슷하기 때문에, 처음 접하는 프로그램이라도 별도의 GUI 작동법을 배우지 않아도 됩니다. 그리고 프로그래머에게는 충분히 검증되어 바로 사용할 수 있는 GUI 코드를 제공합니다. 한편으로는 프로그래머에게 조금 더 복잡해 졌습니다. 창, 메뉴, 아이콘들 같은 GUI 오브젝트(object)들을 만들거나 조작하기 위해서 프로그래.. 더보기
[MASM 강좌] 튜토리얼 2 : MessageBox 튜토리얼 2: MessageBox 이번 튜토리얼에서는 "Win32 assembly is great!" 을 출력하는 메세지 박스를 보여주는 완전한 Windows 프로그램을 만들 것입니다. 예제파일은 여기에서 받으실 수 있습니다. 이론: Windows는 윈도우 프로그램을 위해 많은 리소스를 제공합니다. 그 중심에 Windows API(Application Programming Interface)가 있습니다. Windows API 는 매우 유용한 함수들을 한데 모아놓은 것이며, Windows 에 내포되어 있기 때문에 Windows 프로그램에서 바로 사용할 수 있습니다. 이러한 함수들은 kernel32.dll, user32.dll, gdi32.dll 과 같은 동적링크 라이브러리(DLLs)들에 저장되어 있습니다... 더보기
Visual Studio 2008 에서 MASM 개발하기 Introduction 어셈블리(Assembly)라고 하면 보통 '너무 오래된 언어', '구닥다리 언어', '배우기 어려운 언어', '외계문자' 등의 생각을 하는 분들이 많이 있습니다. =_= 하지만 어셈블리는 알고보면 정말 재미있고, 흥미로운 언어임에 틀림 없습니다. 그리고 어셈블리는 절대 사라지지 않을 멋진 녀석입니다. O/S를 만들때도, C언어로 만들긴 하지만 kernel 은 아직도 어셈블리로 만든다고 합니다. 그만큼 강력하고 무엇이든 할 수 있는 강한놈이죠. 하지만 처음 언어가 나온지 오랜 시간이 지난만큼, 다른 언어에 비해 정보를 얻기 힘이 듭니다. 오늘은 어셈블러에는 어떤 종류가 있고, Visual Studio 에서 어떻게 개발할 수 있는 지에 대해서 알아보도록 하겠습니다. 어셈블러(Assem.. 더보기