DoEnvironmentSubstA 함수(shellapi.h)
[이 함수는 이전 버전과의 호환성을 위해서만 유지됩니다. 대신 ExpandEnvironmentStrings 사용합니다.]
하나 이상의 환경 변수에 대한 참조가 포함된 입력 문자열을 구문 분석하고 완전히 확장된 값으로 대체합니다.
통사론
DWORD DoEnvironmentSubstA(
[in, out] LPSTR pszSrc,
UINT cchSrc
);
매개 변수
[in, out] pszSrc
형식: LPTSTR
각각 다음 형식의 하나 이상의 환경 변수에 대한 참조를 포함하는 null로 끝나는 문자열에 대한 포인터입니다. 대/소문자를 무시합니다.
%VariableName%
'%' 문자로 묶이지 않은 문자열의 모든 문자는 무시되고 변경되지 않고 반환됩니다. 따라서 문자열에 여러 환경 변수가 포함된 경우 공백이나 구분 기호를 포함하여 '%' 이외의 문자를 구분 기호로 사용할 수 있습니다.
이 함수가 성공적으로 반환되면 각 %VariableName% 확장된 값으로 대체됩니다. 대체 규칙은 명령 인터프리터에서 사용하는 규칙과 동일합니다. 시스템에서 변수 이름을 찾을 수 없으면 %variableName% 항목에 제출될 때 그대로 유지됩니다.
확장된 문자열이 버퍼에 비해 너무 커서 이 함수가 실패하면 이 버퍼의 내용은 변경되지 않습니다.
cchSrc
형식: UINT
pszSrc
반환 값
형식: DWORD
확장된 문자열이 버퍼에 맞으면 TRUE HIWORD에 반환되고 새 pszSrc 길이가 LOWORD에 반환됩니다.
확장된 문자열이 버퍼에 비해 너무 크면
발언
매개 변수에는 유효한NULL 값이 포함되어야 합니다. 이러한 값의 유효성을 검사해야 합니다. 이렇게 하지 않으면 예기치 않은 결과가 발생할 수 있습니다.
pszSrc 반환되는 문자열은 일반적으로 입력 문자열보다 길기 때문에 버퍼가 확장된 버전의 문자열을 저장할 수 있을 만큼 커야 합니다. ANSI 문자열에 대한 cchSrc 버퍼의 할당된 크기는 유니코드 문자열의 버퍼보다 커야 합니다. ANSI 문자열을 처리할 때 수식 버퍼 크기 = 문자열 길이 + null 문자 종료 + 1 사용하여 최소 올바른 버퍼 크기를 확인합니다.
사용자 또는 애플리케이션에서 환경 변수를 추가할 수 있으므로 전체 목록은 시스템에 따라 다릅니다. 다음 환경 변수는 표준이며 대화형 애플리케이션과 서비스 모두에서 사용할 수 있습니다.
- ALLUSERSPROFILE
- APPDATA
- COMPUTERNAME
- LOCALAPPDATA
- NUMBER_OF_PROCESSORS
- 운영 체제
- PROCESSOR_ARCHITECTURE
- PROCESSOR_IDENTIFIER
- PROCESSOR_LEVEL
- PROCESSOR_REVISION
- ProgramData
- ProgramFiles
- 공공의
- SystemDrive
- SystemRoot
- USERPROFILE
- windir
- HOMEDRIVE
- HOMEPATH
- LOGONSERVER
- USERDOMAIN
- USERNAME
예제
다음 콘솔 애플리케이션은 DoEnvironmentSubstW사용하는 방법을 보여 줍니다.
#include "stdafx.h"
#include "windows.h"
#include "windef.h"
#include "shellapi.h"
int _tmain(int argc, _TCHAR* argv[])
{
WCHAR szSrc[MAX_PATH] = L"%OS%;%HOMEPATH%";
DWORD result = DoEnvironmentSubstW(szSrc, MAX_PATH);
WORD success = HIWORD(result);
WORD string_length = LOWORD(result);
return 0;
}
메모
shellapi.h 헤더는 DOEnvironmentSubst를 UNICODE 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | shellapi.h |
라이브러리 | Shell32.lib |
DLL | Shell32.dll(버전 4.0 이상) |