2010년 5월 24일 월요일

DLL로 인한 R6034 runtime error

1. 여러 DLL을 쓰다보면 VS2008에서 R6034 runtime error가 생기기도 한다.
자세한 설명은 위의 첨부링크에 있다.
이때는 문제를 일으키는 DLL 링크시 "msvcrt.lib"를 제거하도록 하자.
속성 -> 구성 속성 -> 링커 -> 입력 -> 특정 라이브러리 무시에 "msvcrt.lib"를 집어 넣으면 된다.
물론 "msvcrt.lib"를 제거해서 link error가 발생하면 원래대로 돌리고 다른 방법을 찾아야 한다.

2. 혹은, DLL을 manifest를 사용하지 않고 읽어들인 경우 발생할 수 있다.
이에 대한 해결책은 http://www.codeproject.com/kb/cpp/vcredists_x86.aspx에 있다.

3. VS98을 VS2008로 변환해서 생긴 문제라면 귀찮은 과정을 반복해야 한다.

- VS98과 동일한 project name으로 VS2008 project를 만든다.
- 다음으로 VS98에 있는 모든 헤더(header)와 소스(source) 파일을 VS2008로 옮긴다.
- VS2008에서 옮긴 헤더(header)와 소스(source) 파일을 등록한다.
- 다음에는 리소스(resource)를 옮겨야 한다. VS98의 resource folder인 "res"를 VS2008로 이동한다.
- VS98 project를 VS2008로 변환할 때 생긴 *.rc, *.aps 파일을 새롭게 만든 VS2008 project에 덮어쓴다. 당연히 resource.h도 가져와야 한다.

댓글 없음 :

댓글 쓰기

욕설이나 스팸글은 삭제될 수 있습니다. [전파거북이]는 선플운동의 아름다운 인터넷을 지지합니다.