VC 6.0 플랫폼 급 에서 VS 2008 플랫폼 까지 (하나)

VC 6.0 플랫폼 급 에서 VS 2008 플랫폼 까지
최근 에 일부 프로그램 을 VC6 에서 VS 2008 로 옮 기 면서 이 분야 의 지식 에 관심 을 가지 고 자 료 를 찾 았 습 니 다. 자신 이 만난 상황 에 따라 결합 하여 이 글 을 정리 하고 앞으로 이런 일 을 하 는 사람들 에 게 참고 가 많 기 를 바 랍 니 다. 만약 에 여러분 이 즐 길 수 있 는 것 이 있다 면 따라 할 수 있 습 니 다.
1 、 관련 \ # define WINVER
이 문 제 를 언급 한 것 은 Winodws 버 전의 정의 와 관련 이 있 기 때문이다.버 전 정의 의 관건 은 프로그램 헤더 파일 에서 \ # define WINVER 와 \ # defineWIN32_WINNT 의 사용, 구체 적 으로 는:
#define WINVER 0xXXXX
#define _WIN32_WINNT 0xXXXX

이 정 의 는 일반적으로 프로그램 이 실행 환경 에 대한 요 구 를 표시 하 는 데 사 용 됩 니 다. 또한 일부 헤더 파일 에 도 이러한 매크로 정의 가 있 습 니 다.버 전이 일치 하면 컴 파일 할 때 이 내용 을 컴 파일 합 니 다. 그렇지 않 으 면 컴 파일 하지 않 습 니 다.
정확 한 윈도 버 전 을 정의 하 는 것 은 프로그램의 정확 한 컴 파일 뿐만 아니 라 프로그램의 정확 한 운행 에 도 관계된다.업 그 레이 드 를 하 는 과정 에서 나 는 프로그램 컴 파일 이 정확 하지만 실행 이 잘못된 문제 에 부 딪 혔 다.
버 전의 정 의 는 프로그램 에 컴 파일 된 내용 과 관련 되 는데 이것 은 주로 시스템 이 제공 하 는 기능 코드 를 가리킨다.윈도 각 버 전의 기능 은 큰 차이 가 있 지만 특정한 시스템 기능 이 존재 하기 때문에 이러한 기능 과 관련 된 API 코드 도 다르다.프로그램 에서 잘못된 시스템 버 전 을 정의 하면 프로그램 에 컴 파일 된 내용 은 현재 시스템 이 지원 하지 않 는 코드 세 션 을 포함 할 수 있 습 니 다. 이러한 프로그램 은 정확하게 컴 파일 되 더 라 도 실행 할 때 현재 시스템 에서 해당 하 는 내용 자원 을 찾 지 못 해 오류 가 발생 할 수 있 습 니 다.이 점 은 동적 링크 라 이브 러 리 (DLL) 에 익숙 한 사람들 이 잘 알 고 있 는데 사실은 이 문 제 는 시스템 동적 링크 라 이브 러 리 와 관련 이 있다 는 것 이다.    제 가 프로그램 을 옮 길 때 VS 2008 을 이용 하여 VC6 프로그램 을 직접 전환 한 다음 에 VS 2008 새 프로젝트 의 Stdafx. h 파일 내용 에 따라 원래 의 Stdafx. h 헤더 파일 을 업데이트 하고 VS 2008 프로젝트 에 만 있 는 targerver. h 헤더 파일 을 추 가 했 습 니 다.(프로젝트 변환 시 targerver. h 가 생 성 되 지 않 습 니 다. 기본 WINVER = 0x 0600 시스템 환경 (시스템 이 Vista 라 고 표시 되 어 있 음) 을 변경 하려 면 targerver. h 를 수 동 으로 추가 해 야 합 니 다.) targetver. h 헤더 파일 의 다음 정의 에 따라:
#ifndef WINVER                  //            Windows Vista
#define WINVER 0x0600           //  Windows 
#endif
 #ifndef _WIN32_WINNT            //            Windows Vista
#define _WIN32_WINNT 0x0600     //  Windows 
#endif

PS:0×윈도우 2000, 0×0501 은 윈도 XP, 0×0502 는 윈도 서버 2003, 0×0600 은 윈도 비 스타.2. DX8SDK 에서 링크 를 사용 할 때 나타 나 는 libci. lib 에서 찾 을 수 없 는 문제
    최근 개발 과정 에서 DX8 SDK 로 프로젝트 를 컴 파일 할 때 링크 를 연결 할 때 libci. lib 를 열 수 없 는 문제 가 발생 했 습 니 다.
    LINK:fatal error  LNK 1104: 파일 을 열 수 없 음: libci. lib "
     해결 방법 은 다음 과 같다.
    프로젝트 의 속성 을 선택 하고 링크 옵션 에서 Command line 을 선택 하여 다음 줄 을 추가 합 니 다.
      /nodefaultlib:libci 
   원인:
Vc9 에 나타 나 면 '오래된 iostream 라 이브 러 리 설치' 를 선택 하지 않 았 을 수도 있 습 니 다. 이 문 제 를 일 으 켰 습 니 다. 제 가 보기 에는 마이크로소프트 문제 입 니 다.

좋은 웹페이지 즐겨찾기