전체 글 24

변수 이름 접두어

기존 개발된 프로젝트를 하면서 10년전 코드를 보면 cb 나 sz 가 붙은 변수명을 많이 봐왔다. 선언된 변수의 형태를 보고 짐작만 했던 내용을 정리한다. n , cb , sz , lpsz , h 등 [n] 접두어 : n 변수형 : int 예시 : nCmdShow 의미 : 정수 [cb] 접두어 : cb 변수형 : DWORD 예시 : cbSize 의미 : 바이트의 수 (count of byte) [sz] 접두어 : sz 변수형 : char[] 예시 : szTitle 의미 : 문자열 (string terminated zero) [lpsz] 접두어 : lpsz 변수형 : char* 예시 : lpszMenuName 의미 : 0으로 끝나는 문자열 포인터 [h] 접두어 : h 변수형 : HINSTANCE, HWND..

공통 2019.06.30

Registration Error / devenv.exe

레지스트리 변경이 필요한 작업을 하다가 약 2일간의 삽질을 정리한다. 과정1. File 및 Data 를 업데이트 해야하는 런처가 있다.2. 오프라인상태일 때 런처를 통해서 프로그램 실행이 필요해졌다.3. 레지스트리에 key를 등록해서 라이센스를 관리하기로 했다.4. 기존에 개발된 license.dll 을 통해서 작업을 시작했다. 문제점 발생1. 왜인지 dll의 함수를 호출하면 - Registration Error - Close Registration Error팝업창이 순서대로 출력되었다.2. 확인해보니 레지스트리에 아무런 값이 등록이 안됐다.3. dll 문제라고 지레짐작하고 소스를 뒤져봤다. ( 15년이 넘게 지난 C로 개발된 소스이다. 여기서 register 변수를 처음 봤다. )4. 문제가 없다.5...

Visual Studio 2019.03.07

[C/C++] WORD, DWORD, QWORD

C++ 프로젝트를 하면서 DWORD 에 대해 알아보고 나면 까먹어서 정리해둔다. (요약은 맨 아래에) - WORD, DWORD, QWORD 란? 데이터를 저장하는 데 사용되는 '부호 없는 정수형 자료형'이다. 더보기 // 16비트 WORD 선언 WORD word_ = 10; unsigned short word__ = 10; // 32비트 DWORD 선언 DWORD dword_ = 1000000000; unsigned long dword__ = 1000000000; // 64비트 QWORD 선언 QWORD qword_= 1000000000000000000; unsigned long long qword__ = 1000000000000000000; - WORD의 탄생 일화 데이터 처리 과정에서 u..

C,C++ 2019.03.04

[C++]warning C4482 : 비표준 확장 에 대해서

프로젝트를 빌드 하던 도중 warning C4482 을 발견 했다. 경고 1 warning C4482: 비표준 확장이 사용되었습니다. 정규화된 이름에 'MyCodeException::ExceptionID' 열거형을 사용했습니다. [경로]\[파일].cpp [줄] 위와 같은 에로가 발생하는 이유는 함수 호출 파라미터에 enum(열거형)을 전달 할 때 발생한다. ex) AfxMessageBox(MyCodeException::ExceptionID::num1); - 정식 설명 - 이 경고 메세지는 형식 내부(클래스, 구조체, 네임스페이스 등)에 선언된 이름있는 enum을 사용하게 되었을 때 나타나는 증상이다. 빌드시 경고 메세지를 없애기 위해서는 [형식 내부명]::[열거형 항목] 으로 사용하면 된다. ex) Af..

C,C++ 2019.01.31

메모리 영역(Heap, Stack, Data, Code)

주기억장치(RAM) 에는 크게 Heap, Stack, Data, Code 로 사용하는 영역(Segment)이 있다. ( BSS 영역도 있다는데 나중에 알아보자. ) 각 데이터 영역은 함수, 변수, 상수 등의 시작 주소값을 가진다. ex) main 함수의 주소값 : 08048400 - Heap malloc(Memory Allocation), new 등으로 동적 메모리를 선언할 때 할당되는 영역 - Stack 지역변수(local), 매개변수(파라미터, parameter), 리턴(return) 등 임시로 사용할 메모리를 선언할 때 할당되는 영역 - Data 전역변수(global), 정적변수(static), 배열(array), 구조체(structure) 등 프로그램 실행과 동시에 선언할 때 할당되는 영역 - C..

C,C++ 2019.01.23

동적(Dynamic) vs 정적(Static)

동적과 정적. 매번 찾아보고 이해해도 다시 듣다보면 헷갈려서 정리해 둔다. 일단 동적과 정적을 알아보자. 동적(움직일 動, 과녁 的) : 움직이는 성격의 정적(고요할 靜, 과녁 的) : 정지한 성격의 (동동 떠다니고, 정박해 있고... ㅎㅎ) - 동적할당 vs 정적할당 1. 동적할당 ● 동적할당은 new 연산자를 사용하여 동적으로 할당한다 ● 동적할당된 변수는 대체로 힙(heap) 메모리 공간에 저장된다 2. 정적할당 ● 정적할당은 컴파일 타임에 미리 할당한다 ● 정적할당된 변수는 프로그램의 전역(global) 메모리 공간이나 스택(stack) 메모리 공간에 저장된다 일반적으로 동적 라이브러리(Dynamic Library) 와 정적 라이브러리(Static Library)에 대해서 말할때 많이 사용된다.

C,C++ 2019.01.22
반응형