1. LINK : fatal error LNK1104: 'mtxguid.lib' 파일을 열 수 없습니다.
확인 해보니 더 이상 VC++ 8 버전에서는 'mtxguid.lib'가 존재 하지 않는다.
다른 lib 로 바이너리들이 통합 된것으로 보이며 링커 옵션에 추가 되어 있는 'mtxguid.lib' 를 지우면 된다.
추가적으로 main을 못찾는다는 링크 에러가 발생하면 "ATL에서 CRT 사용 최소화" 옵션을 사용 하지 않는다.
2. GetObjectContext 링크 에러
링크 옵션에 "comsvcs.lib" 를 추가 하면 된다.
3. def 파일의 심볼에 서수 지정 경고
아래와 같이 def 파일의 함수 이름에 서수가 지정 되어 있으면 아래와 같이 경고가 표시 된다
warning LNK4222: 내보낸 'DllCanUnloadNow' 기호를 서수로 지정하면 안 됩니다.
warning LNK4222: 내보낸 'DllGetClassObject' 기호를 서수로 지정하면 안 됩니다.
warning LNK4222: 내보낸 'DllRegisterServer' 기호를 서수로 지정하면 안 됩니다.
warning LNK4222: 내보낸 'DllUnregisterServer' 기호를 서수로 지정하면 안 됩니다
그런 경우 def 파일을 열어서 아래와 같이 서수에 해당하는 부분을 지워 준다.
EXPORTS
DllCanUnloadNow PRIVATE
DllGetClassObject PRIVATE
DllRegisterServer PRIVATE
DllUnregisterServer PRIVATE
그 외에 deprecation 되어 있는 CRT 함수들의 경고들은 무시해 주거나 새로운 버전의 CRT 함수를 사용 하면 된다.
ex) sprintf -> sprintf_s
참고 : http://social.microsoft.com/Forums/en-US/vcgeneral/thread/1b44c27b-db1c-4879-9eb9-4bf2a128b88f
'Dev > Windows' 카테고리의 다른 글
COM+ 패키지 활성화별 세션 상태 정리 (0) | 2009.09.22 |
---|---|
Redmine 세팅 (0) | 2009.09.12 |
유니코드(UNICODE), C++ (0) | 2008.10.16 |
VARIANT 에서 객체 추출하기 (0) | 2008.09.09 |
ffmpeg (0) | 2008.04.09 |