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 라 이브 러 리 설치' 를 선택 하지 않 았 을 수도 있 습 니 다. 이 문 제 를 일 으 켰 습 니 다. 제 가 보기 에는 마이크로소프트 문제 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
제한된 크기의 디렉토리를 만드는 방법오늘 저는 장치에 공간이 없을 때 백업 중에 응용 프로그램이 어떻게 작동하는지 테스트(및 수정)하는 작업이 있습니다. 결과적으로 "남은 공간 없음"오류로 백업이 실패하면 새 파일이 없어야 합니다. 지금까지 문제를 재...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.