[VC] #pragma pack

메모리 패킹1.요약 #pragma pack을 이용하여 메모리를 특정 align으로 packing할 수 있다. 2.본문 데브피아에 다음과 같은 팁이 올라왔다. —————————————————————– 구조체 / 공용체 도는 클래스를 바이트 스트림으로 변화시켜야한다면 메모리를 패킹하자. – 사용하는 구조체 또는 공용체 / 클래스를 바이트 스트림으로 변화시켜야한다면, 메모리를 1 바이트 정열을 시켜야 정확한 바이트 단위 크기를 갔습니다. 주로 통신 프로그램을 만드는 경우에 해당하겠군요 예 […]

[VC] #pragma pack 더 읽기"

[VC] #pragma warning

#pragma warning( warning-specifier : warning-number-list [; warning-specifier : warning-number-list…] )#pragma warning( push[ ,n ] )#pragma warning( pop )컴파일러 경고 메시지 관련 동작에 대한 선택적 수정을 허용해준다.경고-지시어(warning-specifier)는 다음의 것들 가운데 하나일 수 있다. 경고-지시어의 의미once지정한 메시지(들)을 오직 한 번만 표시한다. default경고 동작을 그것의 디폴트값으로 재설정(reset)한다. 이것은 디폴트로 꺼져 있는 경고를 켜는 효과도 가지고 있다. 이제 그

[VC] #pragma warning 더 읽기"

CVS 이야기

CVS 이야기 장우현 louis (at) mizi.co.kr 박용주     $Date: 2001/08/21 13:01:41 $ 여 러명이 어떤 공동의 작업을 수행할 때 유용하게 쓸 수 있는 CVS에 관한 이야기를 하고 있습니다. 이 글에서는 아직 CVS 관리에 관한 얘기는 없으며, 순수하게 사용하는 방법만 설명하고 있습니다. 글에 대한 문의사항이 있으면 언제라도 저에게 메일주시기 바랍니다. (참고로 앞으로는 어떻게 될지 모르겠지만,

CVS 이야기 더 읽기"

UML의 기초: 클래스 다이어그램

Donald Bell, IT Specialist, IBM  2007 년 5 월 22 일 The Rational Edge 발췌: UML 2의 새로운 구조 다이어그램 유형 중 가장 중요한 클래스 다이어그램은 소프트웨어 개발 사이클 동안 분석가, 비즈니스 모델러, 개발자, 테스터에 의해 사용됩니다. 이 글은 Unified Modeling Language(UML)에서 사용되었던 필수 다이어그램에 관한 기술자료 시리즈입니다. 시퀀스 다이어그램에 대해 설명했던 이전 기술자료에서는, UML

UML의 기초: 클래스 다이어그램 더 읽기"

[UML]시퀀스 다이어그램

  본 기사에서는 UML 시퀀스 다이어그램에 대한 자세한 소개와 UML 2.0 스펙에 포함된 몇가지 새로운 표기법을 소개한다. 그동안 여러분들이 들어왔던 UML의 새로운 스팩인 UML 2.0의 변경 사항들을 설명할 때가 되었다. 이 새로운 스팩은 중요하기 때문에, OMG의 UML 1.4 스팩에서 UML (UML 2)의 Adopted 2.0 Draft Specification으로 관심의 초점도 옮겨야 할 것이다. UML 2.0 Draft Specification은

[UML]시퀀스 다이어그램 더 읽기"

NSIS-Labels and Relative Jumps

1. Label Label의 경우 조건문에 의해서 실행되는 흐름을 바꿀때 Label이 붙어 있는 곳으로 보낼 수 있다. 주로 IfErrors, IfFileExists, StrCmp 등의 명령어를 사용할때 많이 사용한다. Label의 경우 지역적으로만 인식되므로 같은 function이나 section 내부에서만 사용할 수 있다. 또한 Label은 -, +, !, $ 또는 0-9 로 시작할 수는 없다. Label 을 사용하는 것은 다음과 같이 한다.

NSIS-Labels and Relative Jumps 더 읽기"

NSIS-Variables

1. 변수란? NSIS에서 변수는 항상 전역적인 범위를 가진다. 즉 지역 변수라는게 없다는 얘기다. 그리고 변수명의 길이는 최대 1024 로 제한된다. 이 보다 큰 길이의 변수명이 필요하면 NSIS 소스를 새로 빌드하면 된다. 하지만 일반인이 이 보다 긴 길이의 이름을 쓴다는 것은 의미가 없다. 10자 이상만 길어져도 타이핑 하기가 귀찮은데 말이다… ㅋㅋㅋ 사용자가 변수를 선언할때는 Var 이라는

NSIS-Variables 더 읽기"

NSIS-Sections

지금까지 이용했던 예제를 보면 전부 Section 이라는 항목이 있었을 것이다. function이나 page 처럼 이것도 마찬가지로 SectionEnd로 끝이 나는데, NSIS로 스크립트를 만들게 되면 무조건 한 개 이상의 section이 있어야 한다. 각 section은 명령어를 하나도 포함하지 않아도 되며, 스크립트에 있는 순서데로 실제로 실행이 된다. 그리고 ComponentText가 셋팅되어 있으면, 사용자가 각각의 section을 보여줄 것인지의 여부를 결정할 수 있다.

NSIS-Sections 더 읽기"

NSIS-Pages 에 대하여(2)

PageCallbacks 라는 기능을 알아 보도록 하겠다. PageCallbacks는 PageEx ~ PageExEnd 사이에서만 쓸 수 있는 기능으로 문법은 다음과 같다. ([creator_function] [leave_function]) | ([pre_function] [show_function] [leave_function])위에 보는 것과 같이 두 개의 함수 이름을 쓰면 creator와 leave 함수를 사용하겠다는 것이고, 세 개의 함수 이름을 쓰면 Page에 들어 가기 전에 실행되고 실제 보여 주는 함수 그리고 페이지를 벗어날 때

NSIS-Pages 에 대하여(2) 더 읽기"

NSIS-Pages 에 대하여(1)

NSIS 로 인스톨러를 만들면 각각의 페이지를 만드는 것이다. 각 페이지가 모여서 전체적인 인스톨 프로그램을 구성하게 된다. 주로 많이 접하는 페이지가 라이센스 동의에 대한 페이지나 인스톨할 디렉토리 선택등을 알 수 있다. 물론 사용자 구성/작성 페이지를 추가 할 수도 있다. 스크립트를 사용해서 이런 페이지의 순서를 변경할 수도 있으며, 특정한 정보를 제공할때 한 페이지에만 머무르도록 할 수도 있다.

NSIS-Pages 에 대하여(1) 더 읽기"

NSIS-Example2를 약간 확장해 보자

거창한건 아니고 앞에서 설명했던 Example2 예제에서 인스톨시에 보면 어떤 파일이 인스톨되는지 보여주지를 않는다. 아래 그림같이  “Show details”라는 버튼이 있다. 이걸 누르면 어떤 파일이 어디에 인스톨됐는지 자세하게 보여 주게 된다. 이를 대신해서  인스톨시에 그 내용을 자세하게 자동으로 보여 주게 할려면 어떻게 하면 될까? 명령어 중에 ‘ShowInstDetails’가 있다. 이 명령어에 show 를 주게 되면 인스톨시에 자세하게 어떤

NSIS-Example2를 약간 확장해 보자 더 읽기"

NSIS 예제 코드 설명 - example2.nsi

이제 NSIS를 사용하는데 필요한 내용은 대부분 배웠다. 나머지 내용들은 인스톨 화면인 GUI를 어떻게 원하는 입맛대로 바꾸는지와 MUI(Modern User Interface) 부분이 남았는데, 이런 부분은 실제로 동작(인스톨/언인스톨 동작)을 하는 것들을 분석하고 실행해 보고 나서 뒤에 보기로 하겠다. 가능한 NSIS를 인스톨 했을때 같이 인스톨되는 예제 파일 중에서 분석할 만한 것들을 몇개 골라서 분석해 보겠다. 예제 코드 자체에 주석이

NSIS 예제 코드 설명 - example2.nsi 더 읽기"

NSIS-언인스톨러용 callback functions

언인스톨러용 callback은 알아 보기 쉽도록 되어 있다. callback이므로  시작은 ‘.’으로 하지만, 언인스톨러에서 사용되는 callback이라서 앞에 ‘un’이 전부 붙어 있다. 그 뒤에 이름은 인스톨러용 callback과 같은 것들은 언인스톨러에서 같은 기능을 한다고 여기면 된다. 1. un.onGUIInit 2. un.onInit 3. un.onUninstFailed 4. un.onUninstSuccess 5. un.onGUIEnd 6. un.onRebootFailed 7. un.onUserAbort 인스톨러에서 각각의 callback을 설명했으니 여기서는 생락하겠다.

NSIS-언인스톨러용 callback functions 더 읽기"

NSIS-인스톨러용 Functions/Callback functions

function이라는 것은 비어 있거나 또는 그 이상의 명령문을 가진다는 점에서 Section과 비슷하다. 사용자가 만든 function은 인스톨러에 의해서 직접적으로 불리지 않으며, section에서 call 명령을 이용해서 부른다. callback function은 특정한 이벤트가 발생했을때 인스톨러에 의해서 불려진다. function은 다른 function이나 section의 바깥 부분에서 정의 되어야 한다. 1. Function Commands 1.1 Function  function function_name 새로운 function을 시작할때 사용하는 명령어이다. 만약 function의 이름이

NSIS-인스톨러용 Functions/Callback functions 더 읽기"

NSIS-배포 프로그램 만들기

※ 다운로드 (완전 무료) http://nsis.sourceforge.net/ 설치 후 아래 예제를 따라하면 쉽게 배포 프로그램을 만들 수 있다.   ※ 예제   1. 폴더 생성   1.1 배포 프로그램에 포함되는 파일이 있는 폴더를 만든다.        c:\NSIS Test\SourceFile     1.1.1 폴더를 생성하고 배포 파일을 만든다. 마우스 오른쪽 버튼으로 보이는 메뉴에서 “새로 만들기>텍스트 문서”로 일반 텍스트

NSIS-배포 프로그램 만들기 더 읽기"

NSIS-Script File Format

NSIS는 이미 알고 있듯이 스크립트로 만들어서 컴파일 하는 과정을 거치게 되어 있다. 아주 복잡한 인스톨 프로그램까지 만들 수 있지만, 천리길도 한 걸음부터라고 가장 기본부터 하나씩 정리해볼 생각이다. 누군가에게 도움이 되기를 바라는 마음도 있지만, 나 자신의 알고 있음을 한번 더 정리하는것도 크니 꾸준하게 정리해서 목표는 현재 곰플레이어 인스톨 하는 수준까지 만드는게 목표이다. NSIS를 다운 받자 http://nsis.sourceforge.net/Main_Page

NSIS-Script File Format 더 읽기"

NSIS 에서 MUI 를 이용하여 사용자 페이지 추가하기

NSIS 에서 MUI 를 이용하여 사용자 페이지 추가하기 헬마입니다. 이번에 코덱팩에 몇 가지 사용자페이지들을 추가하면서 혹시 모르시는 분이 계실까봐 간단하게나마 글을 하나 써봅니다. 물론, 저의 형편없는 글솜씨로 더욱 모르시는분이 늘어나실지도 모르겠지만 … ^^   NSIS 는 기본적으로 몇 가지 종류의 정해진 화면을 제공합니다. 이러한 화면들은 설치관리자에서 거의 필수불가결로 쓰일만큼 필수적인 화면들이지요.  하지만, 언제나 이런 화면들만

NSIS 에서 MUI 를 이용하여 사용자 페이지 추가하기 더 읽기"

윈도우 데이터 타입

Common Data Types The following data types are commonly used when transferring data across the wire. All multiple-byte numbers are transmitted in little-endian format (least significant byte first), unless otherwise indicated. typedef __int8; typedef __int16; typedef __int32; typedef __int64; typedef int BOOL, *PBOOL, *LPBOOL; typedef BYTE BOOLEAN, *PBOOLEAN; typedef WCHAR * BSTR; typedef unsigned char

윈도우 데이터 타입 더 읽기"

윈도우에서 유니코드 프로그래밍

아래의 글은 Jeffrey Richter 의 Programming Applications for MS Windows 4th edition중에 Part 1의 2장 Unicode 의 How to Write Unicode Source Code 부분을 번역해두었던 것을 올리는 것이다. (요즘 포스트가 뜸해서^^;;) 국내에 번역본이 출간된 걸로 알고 있지만 절판된 관계로 구해보지 못했고, 출판사도 망한 것으로 알고 있으며(다른 곳으로 흡수 합병 된 것인가?) 개인적인 용도로 번역해봤으므로 저작권에

윈도우에서 유니코드 프로그래밍 더 읽기"

헝가리안 표기법

개요..   헝가리안 표기법은 “구시대의 유물이니 쓰지 말아야 한다”라는 주장과 “대규모 프로젝트, 코드파악이 잘된다.”등의 논란은 많지만 사용을 잘 하면 코드 분석(가독성) 및 작성에 매우 도움이 되는 코딩 방법론입니다.   헝가리안 표기법 정리..   Hungarian Notation Data Type Prefix Example Boolean b bContinue Int n nIndex Short n nIndex Character c cFirstInitial Float f Percent Double

헝가리안 표기법 더 읽기"

위로 스크롤