VerInstallFileA 함수(winver.h)
VerFindFile 함수에서 반환된 정보에 따라 지정된 파일을 설치합니다. VerInstallFile 은 필요한 경우 파일을 압축 해제하고, 고유한 파일 이름을 할당하고, 오래된 파일과 같은 오류를 확인합니다.
구문
DWORD VerInstallFileA(
[in] DWORD uFlags,
[in] LPCSTR szSrcFileName,
[in] LPCSTR szDestFileName,
[in] LPCSTR szSrcDir,
[in] LPCSTR szDestDir,
[in] LPCSTR szCurDir,
[out] LPSTR szTmpFile,
[in, out] PUINT puTmpFileLen
);
매개 변수
[in] uFlags
형식:DWORD
이 매개 변수는 다음 값 중 하나일 수 있습니다. 다른 모든 비트는 예약되어 있습니다.
값 | 의미 |
---|---|
|
일치하지 않는 버전 번호에 관계없이 파일을 설치합니다. 함수는 설치하는 동안 물리적 오류만 확인합니다. |
|
이전에 설치한 파일이 대상 디렉터리에 없는 경우 이전에 설치한 파일을 삭제하지 않고 파일을 설치합니다. |
[in] szSrcFileName
형식: LPCTSTR
설치할 파일의 이름입니다. szSrcDir 매개 변수가 가리키는 디렉터리의 파일 이름입니다. 파일 이름은 경로가 아닌 파일 이름 및 확장명만 포함할 수 있습니다.
[in] szDestFileName
형식: LPCTSTR
VerInstallFile이라는 이름은 설치 시 새 파일을 제공합니다. 이 파일 이름은 szSrcFileName 디렉터리의 파일 이름과 다를 수 있습니다. 새 이름에는 경로가 아닌 파일 이름 및 확장명만 포함되어야 합니다.
[in] szSrcDir
형식: LPCTSTR
파일을 찾을 수 있는 디렉터리의 이름입니다.
[in] szDestDir
형식: LPCTSTR
파일을 설치해야 하는 디렉터리의 이름입니다. VerFindFile은szDestDir 매개 변수에 이 값을 반환합니다.
[in] szCurDir
형식: LPCTSTR
이 파일의 기존 버전을 찾을 수 있는 디렉터리의 이름입니다. VerFindFile은szCurDir 매개 변수에 이 값을 반환합니다.
[out] szTmpFile
형식: LPTSTR
원본 파일의 임시 복사본 이름입니다. 버퍼는 필수는 아니지만 최소 _MAX_PATH 문자여야 하며 입력 시 비어 있어야 합니다.
[in, out] puTmpFileLen
형식: PUINT
szTmpFile 버퍼의 길이입니다. 이 포인터는 NULL이 아니어야 합니다.
함수가 반환되면 lpuTmpFileLen 은 종료 null 문자를 포함하여 szTmpFile에서 반환된 데이터의 크기(문자)를 받습니다. 버퍼가 너무 작아서 모든 데이터를 포함할 수 없는 경우 lpuTmpFileLen 은 데이터를 보유하는 데 필요한 버퍼의 크기가 됩니다.
반환 값
형식:DWORD
반환 값은 예외를 나타내는 비트 마스크입니다. 다음 값 중 하나 이상일 수 있습니다. 다른 모든 값은 예약되어 있습니다.
반환 코드/값 | 설명 |
---|---|
|
액세스 위반으로 인해 읽기, 만들기, 삭제 또는 이름 바꾸기 작업이 실패했습니다. |
|
szTmpFile 버퍼가 너무 작아서 임시 원본 파일의 이름을 포함할 수 없습니다. 함수가 반환되면 lpuTmpFileLen 에는 파일 이름을 보유하는 데 필요한 버퍼 크기가 포함됩니다. |
|
함수는 임시 파일을 만들 수 없습니다. 특정 오류는 다른 플래그로 설명할 수 있습니다. |
|
함수는 대상 파일을 삭제할 수 없거나 다른 디렉터리에 있는 파일의 기존 버전을 삭제할 수 없습니다. VIF_TEMPFILE 비트가 설정되면 설치에 실패하고 대상 파일을 삭제할 수 없습니다. |
|
파일의 기존 버전을 삭제할 수 없으며 VIFF_DONTDELETEOLD 지정되지 않았습니다. |
|
함수는 캐비닛 파일을 로드할 수 없습니다. |
|
함수는 압축된 파일을 로드할 수 없습니다. |
|
함수는 대상(기존) 파일을 읽을 수 없습니다. 이렇게 하면 함수가 파일의 특성을 검사하지 못하게 됩니다. |
|
함수는 원본 파일을 읽을 수 없습니다. 이는 경로가 제대로 지정되지 않았다는 것을 의미할 수 있습니다. |
|
함수는 임시 파일의 이름을 바꿀 수 없지만 대상 파일을 이미 삭제했습니다. |
|
새 파일에는 현재 실행 중인 시스템 버전에서 표시할 수 없는 코드 페이지가 필요합니다. 이 오류는 VIFF_FORCEINSTALL 플래그가 설정된 VerInstallFile을 호출하여 재정의할 수 있습니다. |
|
새 파일과 기존 파일은 언어 또는 코드 페이지 값이 다릅니다. 이 오류는 VIFF_FORCEINSTALL 플래그가 설정된 VerInstallFile을 다시 호출하여 재정의할 수 있습니다. |
|
새 파일에는 기존 파일과 다른 형식, 하위 형식 또는 운영 체제가 있습니다. 이 오류는 VIFF_FORCEINSTALL 플래그가 설정된 VerInstallFile을 다시 호출하여 재정의할 수 있습니다. |
|
기존 파일은 시스템에서 사용 중이며 삭제할 수 없습니다. |
|
새 파일과 기존 파일은 하나 이상의 특성이 다릅니다. 이 오류는 VIFF_FORCEINSTALL 플래그 집합을 사용하여 VerInstallFile을 다시 호출하여 재정의할 수 있습니다. |
|
메모리 부족으로 인해 함수가 요청된 작업을 완료할 수 없습니다. 일반적으로 이는 애플리케이션이 압축된 파일을 확장하려는 메모리가 부족했음을 의미합니다. |
|
함수는 대상 드라이브의 디스크 공간이 부족하여 임시 파일을 만들 수 없습니다. |
|
공유 위반으로 인해 읽기, 만들기, 삭제 또는 이름 바꾸기 작업이 실패했습니다. |
|
설치할 파일이 기존 파일보다 오래된 경우 이 오류는 VIFF_FORCEINSTALL 플래그 집합을 사용하여 VerInstallFile을 다시 호출하여 재정의할 수 있습니다. |
|
새 파일의 임시 복사본은 대상 디렉터리에 있습니다. 실패의 원인은 다른 플래그에 반영됩니다. |
|
기존 파일은 쓰기로 보호됩니다. 이 오류는 VIFF_FORCEINSTALL 플래그 집합을 사용하여 VerInstallFile을 다시 호출하여 재정의할 수 있습니다. |
설명
이 함수는 16비트, 32비트 및 64비트 파일 이미지에서 작동합니다.
VerInstallFile 은 원본 디렉터리에서 대상 디렉터리로 파일을 복사합니다. szCurDir에서 이전 버전의 파일이 시스템에 있음을 나타내는 경우 VerInstallFile은 파일의 버전 스탬프 정보를 비교합니다. 이전에 설치된 파일 버전이 새 버전보다 최신이거나 파일의 특성이 크게 다른 경우(예: 다른 언어의 경우) VerInstallFile 은 하나 이상의 복구 가능한 오류 코드와 함께 반환합니다.
VerInstallFile 은 임시 파일을 대상 디렉터리에 남깁니다. 애플리케이션은 오류를 재정의하거나 임시 파일을 삭제할 수 있습니다. 애플리케이션이 오류를 재정의하는 경우 VerInstallFile 은 이전에 설치된 버전을 삭제하고 원래 파일 이름으로 임시 파일의 이름을 바꿉니다.
참고
winver.h 헤더는 VERInstallFile을 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | winver.h(Windows.h 포함) |
라이브러리 | Version.lib |
DLL | Api-ms-win-core-version-l1-1-0.dll |
추가 정보
개념
참조