LoadModule 함수(winbase.h)
애플리케이션을 로드하고 실행하거나 기존 애플리케이션의 새 instance 만듭니다.
참고 이 함수는 16비트 버전의 Windows와의 호환성을 위해서만 제공됩니다. 애플리케이션은 CreateProcess 함수를 사용해야 합니다.
구문
DWORD LoadModule(
[in] LPCSTR lpModuleName,
[in] LPVOID lpParameterBlock
);
매개 변수
[in] lpModuleName
실행할 애플리케이션의 파일 이름입니다. 경로를 지정할 때 슬래시(/)가 아닌 백슬라이시(\)를 사용해야 합니다. lpModuleName 매개 변수에 디렉터리 경로가 없는 경우 시스템은 다음 순서로 실행 파일을 검색합니다.
- 애플리케이션이 로드된 디렉터리입니다.
- 현재 디렉터리
- 시스템 디렉터리입니다. GetSystemDirectory 함수를 사용하여 이 디렉터리의 경로를 가져옵니다.
- 16비트 시스템 디렉터리입니다. 이 디렉터리의 경로를 가져오는 함수는 없지만 검색됩니다. 이 디렉터리의 이름은 System입니다.
- Windows 디렉터리입니다. GetWindowsDirectory 함수를 사용하여 이 디렉터리의 경로를 가져옵니다.
- PATH 환경 변수에 나열된 디렉터리입니다.
[in] lpParameterBlock
새 애플리케이션의 매개 변수 블록을 정의하는 애플리케이션 정의 LOADPARMS32 구조체에 대한 포인터입니다.
사용되지 않는 모든 멤버를 NULL로 설정합니다. lpCmdLine을 제외하고 null로 끝나는 문자열이 사용되지 않는 경우 를 가리킵니다. 자세한 내용은 설명 부분을 참조하세요.
반환 값
함수가 성공하면 반환 값이 31보다 큽니다.
함수가 실패하면 반환 값은 다음 값 중 하나일 수 있는 오류 값입니다.
반환 코드/값 | 설명 |
---|---|
|
시스템이 메모리 또는 리소스가 부족합니다. |
|
.exe 파일이 잘못되었습니다. |
|
지정된 파일을 찾을 수 없습니다. |
|
지정된 경로를 찾을 수 없습니다. |
설명
LOADPARMS32 구조체의 형식은 다음과 같습니다.
typedef struct tagLOADPARMS32 {
LPSTR lpEnvAddress; // address of environment strings
LPSTR lpCmdLine; // address of command line
LPSTR lpCmdShow; // how to show new program
DWORD dwReserved; // must be zero
} LOADPARMS32;
멤버 | 의미 |
---|---|
lpEnvAddress | 새 프로세스에 대한 환경 문자열을 제공하는 null로 끝나는 문자열 배열에 대한 포인터입니다. 배열의 마지막 항목으로 NULL 값이 있습니다. 이 매개 변수의 값이 NULL이면 새 프로세스가 호출 프로세스와 동일한 환경으로 시작됩니다. |
lpCmdLine | 올바른 형식의 명령줄을 포함하는 파스칼 스타일 문자열에 대한 포인터입니다. 문자열의 첫 번째 바이트에는 문자열의 바이트 수가 포함됩니다. 문자열의 나머지 부분에는 자식 프로세스의 이름을 제외한 명령줄 인수가 포함됩니다. 명령줄 인수가 없는 경우 이 매개 변수는 길이가 0인 문자열을 가리킵니다. NULL일 수 없습니다. |
lpCmdShow | 두 개의 WORD 값이 포함된 구조체에 대한 포인터입니다. 첫 번째 값은 항상 2로 설정해야 합니다. 두 번째 값은 애플리케이션 창을 표시하는 방법을 지정하고 STARTUPINFO 구조의 wShowWindow 멤버를 CreateProcess 함수에 제공하는 데 사용됩니다. 허용되는 값 목록은 ShowWindow 함수의 nCmdShow 매개 변수에 대한 설명을 참조하세요. |
dwReserved | 이 매개 변수는 예약되어 있습니다. 0이어야 합니다. |
애플리케이션은 LoadModule 대신 CreateProcess 함수를 사용해야 합니다. LoadModule 함수는 다음과 같이 매개 변수를 형성하여 CreateProcess를 호출합니다.
CreateProcess 매개 변수 | 사용된 인수 |
---|---|
lpszApplicationName | lpModuleName |
lpszCommandLine | lpParameterBlock. lpCmdLine |
lpProcessAttributes | NULL |
lpThreadAttributes | NULL |
bInheritHandles | FALSE |
dwCreationFlags | 0 |
lpEnvironment | lpParameterBlock. lpEnvAddress |
lpCurrentDirectory | NULL |
lpStartupInfo | 구조체가 0으로 초기화됩니다. cb 멤버는 구조체의 크기로 설정됩니다. wShowWindow 멤버는 lpParameterBlock의 두 번째 단어 값으로 설정됩니다. lpCmdShow. |
lpProcessInformation.hProcess | 핸들이 즉시 닫힙니다. |
lpProcessInformation.hThread | 핸들이 즉시 닫힙니다. |
요구 사항
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | winbase.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |