전체 글

전체 글

    인라인 함수(inline function)

    인라인 함수는 프로그램의 실행 속도를 높이기 위해 추가된 기능입니다. 왜? 인라인 함수는 컴파일된 함수 코드가 프로그램의 코드 안에 직접 삽입되어진다. 어떻게 쓰나요? 인라인 함수를 사용하려면 함수 선언 앞에 inline이라는 키워드를 붙이거나 함수 정의 앞에 inline이라는 키워드를 붙인다. 특징 및 주의사항: - 클래스 멤버 함수가 inline을 사용하려면, 함수 정의의 위치가 *.h에 있어야 한다. 안 그러면 확인할 수 없는 외부 참조라고 뜬다. - 컴파일러가 inline화를 무시? 거부할 수 있다. - 반대로, 컴파일러가 자동으로 inline화를 할 수 있다. 장점: - 성능 향상 단점: - 인라인 함수를 자주 호출 한다면, 호출한 만큼 코드를 삽입하기 때문에 프로그램의 크기가 커질 수 있다.

    함수 호출 규약(Calling convention)

    참고 자료: 아래 블로그를 보는 게 더 배울 게 많다. 굳이 내 자료를 보는 것보다 설명,그림이 잘 되어있어 시간을 아끼도록 하세요! blog.kimtae.xyz/7 함수호출규약 1. 함수 호출 규약 개요 함수 호출 규약(Calling Convention)이란, 함수를 호출하는 방식에 대한 약속이다. 함수 호출 규약은 인자 전달 방법, 인자 전달 순서, Stack Frame을 정리하는 방법에 따라 그 종 blog.kimtae.xyz 함수 호출 규약이란, 함수를 호출하는 방식에 대한 약속이다. 함수 호출 규약은 인자 전달 방법, 인자 전달 순서, Stack Frame을 정리하는 방법에 따라 그 종류를 구분한다. Stack Frame은 함수의 호출 과정에서 호출되는 함수가 사용하기 위해 할당되는 Stack의..

    자가 보호(3) - DeviceIO 개발

    드라이버와 통신하는 부분을 개발한다. 아직 지식이 없어, 자세한 내용을 기입하지 못한다. 리서치를 통해 해당 게시글을 수정한다.

    자가 보호(2) - Driver Load, Unload

    - Drivr Load, Unload 하는 Function을 만들 것이다. - 잘 쓰기 쉽게, 잘못 쓰기 어렵게 참고자료 (https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-createservicea) 필요한 기능 4가지 - Driver Load - Driver Unload - Driver Start - Driver Stop 4가지 기능을 제작할 것이다. - 첫 번째는 동작만 하기 위해 개발 - 두 번째는 첫 번째보다 필요없는 변수 제거 - 세 번째는 Logic에서 필요없는 부분 제거 꼭 세 번을 개발하지 않을 수도 있다. 조금 더, 개발 스킬보다는 개발 기본에 충실하고 싶다. 위에 MSDN을 참고해, 그대로 코드를 가져왔다. 기존에..

    자가 보호(1) - 프로젝트를 시작하기 전에

    프로젝트를 진행하면서 블로그에서 진행을 한다. 자가 보호 프로젝트는 목표 프로세스, 파일, 레지스트리의 종료, 변경, 제거 등으로부터 보호하는 프로젝트. 해당 프로젝트를 진행하면서, 현업에서 배우는 코딩 컨벤션 및 논리적인 사고력 등 여러가지 본인에게 부족한 것을 향상 시키는 것에 집중한다. 1. 필요한 모듈은 개발한다. - 오픈소스가 충분하나, 모듈과 모듈끼리 서로 얽히지 않게 개발하는 능력이 매우 부족하다. 2. 주석 처리 및 코딩 컨벤션에 집중한다. - 코딩 규약은 최소한의 성의라고 생각한다. 3. Modern C++ 지향한다. - Modern이라고 붙이기에는 애매하지만, C++11 이상에서 개발된 키워드를 사용한다. 4. 최소 2번 이상 지웠다가 새롭게 짠다. - 결과만 나오는 코딩은 어울리지 않..