Loading...

가변 인수를 가지는 함수 및 매크로 만들기

출처 : http://uuzazuk9.egloos.com/906491 ANSI C 버전 ================================================================================ #include #include int average(int first, ...); void main( void ) { /* Call with 3 integers (-1 is used as terminator). */ printf("Average is: %dn", average(2, 3, 4, -1)); /* Call with 4 integers. */ printf("Average is: %dn", average(5, 7, 9, 11, -1)); /* Call with jus..

/DYNAMICBASE(주소 공간 레이아웃을 임의로 지정)

msdn : http://msdn.microsoft.com/ko-kr/library/bb384887.aspx 로드할 때 Windows Vist의 ASLR(Address Space Layout Randomization) 기능을 사용하여 임의로 기준 주소를 지정할 수 있는 실행 가능 이미지를 생성할지 여부를 지정합니다. /DYNAMICBASE[:NO] 설명 이 옵션은 실행 파일의 헤더를 수정하여 로드 시 응용 프로그램의 주소가 임의로 지정되어야 하는지를 나타냅니다. ASLR(Address Space Layout Randomization)은 Windows Vista 이상의 운영 체제에서만 지원됩니다. Visual Studio 개발 환경에서 이 링커 옵션을 설정하려면 프로젝트의 속성 페이지 대화 상자를 엽니다...

c++ 생각하기 2.

1. 컴파일러가 스스로 하는 암시적인 타입변환. 단일인자 생성자를 통한 암시적 타입변환..... 이녀석의 때문에 생기는 버그는 찾기 어렵다. 미리미리 조심해야지. 단일인자 생성자의 경우에는 explicit 키워드를 사용하자. 하지만 이렇게 해도 명시적인 타입변환은 여전히 허용된다. 명시적인 타입변환까지 막을 필요가 있을까... 말그대로 사용자가 필요해서 대놓고 한다는데. 문제는 몰래하는 암시적변환이지만.... 또다른 방법으로는 컴파일러의 암시적 타입변환의 규칙을 교묘히 피해나가는 것이다. 즉, 컴파일러의 암시적 타입변환 규칙에 어긋나게 만드는 것이다. "사용자 정의 타입변환 함수는 두개 이상 쓰이지 않는다." 라는 것이 있다. 그래서 클래스만 잘 만들어 놓으면 객체생성은 허용하지만 암시적 타입변환은 불가..

freetype font

ㅇㅇ~ winapi 사이트 역시 쩌는군. freetype library 쓸려고 영문사이트에서 이리저리 보고 짯는데 이곳에 이미 체계적으로 잘 설명해 놓은 한글 메뉴얼이 있네...헐.. http://www.winapi.co.kr/ 프로젝트 - 라이브러리 - freetype font home site : http://freetype.sourceforge.net/index2.html

빌드 자동화

출처 : http://www.hybrid.pe.kr/tt/384#footnote_link_384_1 조엘 온 소프트웨어(영어 링크, 한국어 링크) 에 일별 빌드에 대한 좋은 글이 있다. 글의 제목은 '일별 빌드(Daily Builds)가 당신 곁에 있습니다(한국어판).' 으로, 여기서는 매일 빌드 하는 강조하지만, 나는 그것보다 작은 단위로, 그냥 일괄적으로 빌드 하는 것에 대해서 정리해보려고 한다. 더 많은 방법이 있고, 더 효율적인 방법도 많을 것이다. 일단 시작은 Batch 파일부터 시작하기로 했다. Bach 파일 작성에 관한 참고 문헌 mwultong Blog - 배치파일(.BAT) IF 조건문 사용법 기초 강좌; DOS Batch File IF자동화 빌드에 대한 참고 문헌 : Games from..

dllimport, dllexport

exports library file(.exp), object file library(.lib) 참조 : msdn http://msdn.microsoft.com/ko-kr/library/se8y7dcs(VS.80).aspx .exp파일에는 export된 함수와 데이터 항목에 대한 정보가 들어있다. .lib에는 export할 함수를 만들때 .exp파일도 함께 만든다. 다른 프로그램으로 export 하거나 import하기도 하는 프로그램을 직접 또는 간접적으로 링크하고자 할 때 이 .exp 파일을 사용한다. .exp 파일을 사용하여 링크하면 link에서는 import 라이브러리를 이미 만들었다고 가정하기 때문에 다시 만들지 않는다. 이 파일들을 만드는 방법은 간단하다. #ifdef MGSYSTEM_EXPOR..

Vista Installation - showing Booting GRLDR and some other extra messages

http://www.kobridge.com/Forums/showthread.php?t=456 이거땀시 죽는줄 알았어.ㅜㅜ. Vista Installation - showing Booting GRLDR and some other extra messages For some of the pirated copies of Vista OEM s/w, there are some extra stuffs added into the original installation DVD. The typical situation of this case is, the message like below is displayed during the boot. Booting GRLDR.. Reseting the boot drive...Suc..

c++ 생각하기 1.

1. 프로퍼티 시트 활용 블로그에 이미 자료를 올렸으니 생략. 2. 참조자와 포인터 구분 사용 참조의 사용 - 참조하고자 하는 어떤 객체를 미리 알고 있을 때(참조자는 NULL이 될 수 없기 떄문) - 다른 객체를 바꾸어 참조할 일이 없을 때(포인터의 경우 하나의 변수를 가지고 여러개의 객체를 바꾸어 참조 가능) - 연산자 함수 구현시(예로 첨자 연산자[] 구현시 포인터를 사용하면 어색한 모습이 된다.) 포인터의 사용 - 딱히 가르킬 주소가 없을때(NULL을 사용 할 수 있다) - 하나의 변수로 여러객체를 바꾸어 참조하더라도 이전 객체의 값이 변하지 않는다. 여태까진 대부분 포인터를 즐겨 사용했다. 포인터를 사용하면 NULL로 초기화를 할 수 있어 초기화 여부를 체크 할 수 있기 때문이다. 참조자를 사용..