"Incremental Linker의 작동이 중지되었습니다."


라는 안내창이 뜨면서 꽤 높은 확률로 링크 에러가 발생할 때,

구글링 하면 대부분 SP1을 설치하라고 권고한다.


하지만.... Direct SDK 를 사용해서 그런지 어쩐지는 잘 모르겠지만,

vs2008 과 vs2008 sp1은 어느 부분(어딘지 모르겠지만)에서 호환이 안된다.

즉, sp1에서 작성한 솔루션을 그냥 vs2008에서 컴파일 했을 때 에러가 발생했었던 걸로 기억.


덕분에 sp1 에서 다운그레이드 하느라고 vs2008을 삭제하고 재설치하기까지 했다 ㅜㅜ

(주변 개발 환경이 vs2008이기 때문에 데스크탑을 맞출 수 밖에 없었다는...)


쨌든, 그러한 이유로 sp1 설치는 해결책이 되지 않아 이리저리 검색한 결과,

핫픽스를 설치하라는 글을 발견하고 기쁜 마음에 다운받아 설치하려고 했으나.


실행 직후 안내문에


"이 소프트웨어 업데이트가 적용되는 제품이 이 컴퓨터에 설치되어 있지 않습니다. 설치를 끝내려면 취소를 클릭하십시오."


ㅇㄱㄴ

또다시 좌절..


꽤 오랜 시간 검색한 결과 드디어..!!!

해결책을 찾았다!


에러가 나던 프로젝트 하나만 설정해주면 되는데,

해당 프로젝트의 속성(Alt+F7) - 구성 속성 - 링커 - 일반 - 증분 링크 사용

이 부분을 "예(/INCREMENTAL)" 에서

기본값 or "아니오(/INCREMENTAL:NO)"로 설정해주면 된다.


내 경우엔 "기본값"으로 설정했는데 이상없이 아주 잘된다!


오예 ~ㅁ~



ABABABABHeapAlloc으로 메모리 할당 후 가드 바이트에 채워진 값
CCCCCCCC초기화 되지 않은 스택 메모리
CDCDCDCD메모리 할당 후 초기화 되지 않은 힙 메모리
BAADF00DLocalAlloc(LMEM_FIXED)으로 메모리 할당된 후 초기화 되지 않은 값
FDFDFDFD할당된 메모리의 전후 가드용 바이트에 채워지는 값
FEEEFEEE힙 메모리를 해제한 후 채워지는 값


출처 : http://lab.gamecodi.com/board/zboard.php?id=GAMECODILAB_Lecture&page=3&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=101

'Programming > C/C++' 카테고리의 다른 글

헐... 매크로 재정의 경고!! 무시하지 말자 ㅠㅠ  (0) 2013.05.07
memset()  (0) 2013.03.07


memset() 함수의 구조.


void* memset(void* _p, int _value, size_t _n);


void* _p : 메모리의 크기를 변경할 포인터

int _value : 세팅할 값

size_t _n : 초기화 길이(크기)


return void* : void* _p에 대한 포인터를 반환, 실패시 NULL 리턴


* memset() 함수로 int형 변수(를 담은 포인터)를 초기화 하는 경우 : _value는 0만 가능.

정확히는 다른 수들도 에러는 나지 않지만 예상치 못한 값으로 세팅됨. 자리의 세팅이 아닌듯.

확신할 수는 없고... 1로 세팅해서 16진수로 토해내게 했더니 0101 0101 이라고 출력됨. why?


* memset() 함수로 char형 변수(를 담은 포인터)를 초기화 하는 경우 : _value에 들어온 값을 아스키로 인식.

+ Recent posts