본문 바로가기

어셈

[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)들에 저장되어 있습니다... 더보기
MASM - DLL 만들기 Introduction 지난 시간에 약속한대로 이번 시간에는 MASM 을 이용하여 DLL을 만들고, DLL을 이용하는 방법에 대해서 설명하도록 하겠습니다. 물론 Visual Studio 2008 환경에서 설명하도록 하겠습니다. DLL 만들기이 예제에서는 DllTest.dll 을 생성하고, 이를 사용하도록 하겠습니다. DllTest.dll 안에는 MsgBoxFunction 이라는 Funcion 하나가 들어 있습니다. 소스 파일명은 Test.asm 입니다. DLL을 생성하기 위해서는 Def 파일을 추가로 작성해 주셔야 합니다. Test.asm 코드 .386 .model flat,stdcall option casemap:none include d:\development\masm32\include\windo.. 더보기