※ 요약

UAC란 윈도우 비스타부터 추가된 보안을 위한 기능으로써, UAC가 켜져 있을 경우 윈도우가 설치된 시스템 드라이브(보통 C드라이브)에는 파일 쓰기나 파일 변경이 불가능하다. 이럴때는 프로그램을 관리자 권한으로 실행해도 되지만 UAC에 관계없이 파일 쓰기나 변경이 가능한 폴더 Temp 폴더에 작업을 하는게 여러모로 편리하고 안전하다.


※ 탐색기에서 temp 폴더 경로 구하기

탐색기 주소표시줄에 환경변수 %temp%를 입력하면 현재 시스템의 temp 폴더를 알 수 있다. 필자의 경우 C:\Users\사용자 이름\AppData\Local\Temp가 temp 폴더의 경로다.



※ 실행창에서 temp 폴더 경로 구하기

실행창에 환경변수 %temp%를 입력하면 temp폴더가 탐색기를 통해 열린다.


※ 윈도우API 함수를 통해 경로 구하기

아래 예제는 MFC에서 작성한 예제다. MFC 말고도 C#이나 Java 등에서도 구할 수 있을텐데 필자는 C++만 해서 다른 언어는 자세히 모르겠다. 아무튼 GetTempPath를 이용하면 아래와 같이 temp 경로를 구할 수 있다.


※ 요약

구글에서 제공하는 C++ 코딩 스타일 가이드다. 체계가 잘 잡힌 회사는 회사 내부에서 사용하는 코딩 스타일이 있을텐데, 없는 회사라면 참고해도 좋을 것이다. 원문은 영문이며 한국어 번역도 있지만 아무래도 최신보다 뒤떨어져 있다.


※ 링크


※ 설명

아래는 구글 C++ 스타일이다.



아래는 번역된 사이트다.


※ 요약

필자가 즐겨하던 퀘이크 시리즈는 소스코드가 공개되어있다. 관심있는 독자는 다운받아 소스코드를 분석해보기 바란다.



※ 설명

다운로드는 Github나 FTP에서 받을 수 있는데, 필자는 FTP 서버에서 퀘이크3 1.32b 버전을 다운받았다.


다운받은 소스코드는 Visual Studio 7.1 버전인데 14.0버전으로 마이그레이션한후 컴파일하였다. 아래는 컴파일 후 실행한 모습이다.


※ 요약

필자는 대학생 시절 OpenCV를 이용한 영상처리를 공부한 적이 있고, 이 경험 바탕으로 가끔 영상처리를 이용한 프로그램 개발을 취미로 할때가 있다. 그러다보면 가끔 색상 변환을 해야할때가 있는데, OpenCV를 이용하면 간단하게 변환이 가능하지만 직접 구현해야 하는 경우엔 각각의 공식을 찾아야 한다. 필자도 신입때 직접 색상 변환을 해야해서 찾은 사이트가 있어 소개하고자 포스팅한다.



※ 변환 목록

XYZ -> RGB

RGB -> XYZ

XYZ -> Yxy

Yxy -> XYZ

XYZ -> Hunter-Lab

Hunter-Lab -> XYZ

XYZ -> CIE-L*ab

CIE-L*ab -> XYZ

CIE-L*ab -> CIE-L*CH°

CIE-L*CH° ->CIE-L*ab

XYZ -> CIE-L*uv

CIE-L*uv -> XYZ

RGB -> HSL

HSL -> RGB

RGB -> HSV

HSV -> RGB

RGB -> CMY

CMY -> RGB

CMY -> CMYK

CMYK -> CMY



※ 설명

상기 링크로 접속하면 아래와 같은 화면이 나온다. 보면 각종 변환 가능한 목록들이 있다.

예로 RGB를 HSV로 변환하는 공식을 열어보았다.


※ 요약

gcc 6.1 버전이 2016년 4월 27일 릴리즈 되었다. C++17관련하여 fold expressions, u8 character literals, extended static_assert, nested namespace definitions 등이 추가되었고, 그 밖에 많은 변경사항들이 있으므로 사이트에서 직접 확인하기 바란다. 필자는 4.8.x 버전을 이용중인데 서비스중인 서버 인데다가, gcc는 그다지 사용하지 않고 Visual Studio를 주력으로 사용하므로 업데이트 계획은 없다.

※ gcc 사이트 링크




※ 요약
마이크로소프트가 우분투 배포사인 캐노니컬과 손잡고 네이티브 우분투 바이러리를 윈도우10에 탑재해 올 여름 윈도우10 1주년 업데이트와 함께 출시할 예정이다. 개발자는 이번 업데이트로 인해 bash 스크립트(*.sh)를 윈도우에서 작성할 수 있으며 코드를 편집하는데 vi 혹은 emacs로 편집도 할 수 있다. 자세한 내용은 아래 링크에 더 있다.



'프로그래밍 관련 > 관련 소식' 카테고리의 다른 글

[개발] 마이크로소프트웨어 재발행 결정  (1) 2017.02.02
gcc 6.1 릴리즈  (0) 2016.05.26
C++14 관련 소식  (0) 2014.08.20



필자는 회사에서건 집에서건 svn을 사용한다. 당장 git을 사용할 필요는 없지만 나중에 필요할지 몰라 git 간편 안내서를 정리해둔다. git이 좋기도 하고 대세기도 하지만 svn보다 월등히 좋다거나 기존 svn 체계를 버리고 git 택할만큼의 가치는 있는지 모르겠다.


git - 간편 안내서


간편 안내서 사이트에 가면 아래와 같이 설치에서 부터 git의 다양한 기능을 습득할 수 있다.




※ 요약
Microsoft Press에서 출간된 책 중 무료로 제공되는 eBook에 대해 다운로드 받을 수 있는 사이트에 대한 포스트이다.
Topic은 App Development, Microsoft Azure, Microsoft System Center, Windows, Windows Server, SQL Server으로 나눠져 있고 권 수는 30여권으로써 그렇게 많지는 않다. 또 원서만 제공된다. 





※ 요약
어떤 프로그래밍 언어를 선택하더라도 꼭 배우게되는 반복문, 반복문을 배울때 변수명을 보통 i나 j, k등으로 하는데 그 이유는 아래와 같이 포트란의 영향을 받아서 생긴 관습이라고 한다.





※ 요약
이번 포스트의 내용은 32비트나 64비트 윈도우에서 프로세스당 사용 가능한 최대 메모리에 대한 내용이다. 윈도우를 기준으로 작성하였고, 리눅스에서는 아마 적용이 안될것으로 생각된다.

※ 프로세스가 각 비트에서 사용 가능한 최대 메모리
32비트 : 2GB
64비트 : 8TB

※ 설명
책이나 학교에서 배운대로 라면 32비트는 2^32로써 4GB를, 64비트는 2^64로써 16EB의 주소 공간을 가질 수 있어야 하지만 위의 설명에서는 각각 2GB와 8TB만 사용할 수 있다고 하였다. 이는 각 프로세스가 할당 받은 가상 주소 공간은 분할되어 있고, 분할된 영역 중에 사용할 수 있는 메모리 공간이 각각 2GB와 8TB이기 때문이다.
참고로 아래는 32비트일때 분할된 각 공간의 크기다. 유저 모드 파티션이 프로세스가 사용 가능한 공간으로써 0x00010000 ~ 0x7FFEFFFF를 계산해보면 2047MB로써 대략 2GB가 된다는 걸 알 수 있다.

 Null 포인터 할당 파티션

 0x00000000 ~ 0x0000FFFF

 유저 모드 파티션

 0x00010000 ~ 0x7FFEFFFF

 64KB 접근 금지 파티션

 0x7FFF0000 ~ 0x7FFFFFF

 커널 모드 파티션

 0x80000000 ~ 0xFFFFFFFF


참고로 주소 공간 분할은 윈도우 커널 버전에 따라 조금씩 다를 수 있으며, 제작하려는 프로그램이 2GB 이상의 메모리를 사용한다면 64비트로 컴파일해야 할 것이다. 또 Visual Studio라면 "프로젝트 속성 -> Linker -> System -> Enable Large Addresses" 설정을 통해 사용할 수 있는 최대 메모리가 3GB까지 늘어난다고 한다.




+ Recent posts