다음을 통해 공유


LoadModule 함수(winbase.h)

애플리케이션을 로드하고 실행하거나 기존 애플리케이션의 새 instance 만듭니다.

참고 이 함수는 16비트 버전의 Windows와의 호환성을 위해서만 제공됩니다. 애플리케이션은 CreateProcess 함수를 사용해야 합니다.
 

구문

DWORD LoadModule(
  [in] LPCSTR lpModuleName,
  [in] LPVOID lpParameterBlock
);

매개 변수

[in] lpModuleName

실행할 애플리케이션의 파일 이름입니다. 경로를 지정할 때 슬래시(/)가 아닌 백슬라이시(\)를 사용해야 합니다. lpModuleName 매개 변수에 디렉터리 경로가 없는 경우 시스템은 다음 순서로 실행 파일을 검색합니다.

  1. 애플리케이션이 로드된 디렉터리입니다.
  2. 현재 디렉터리
  3. 시스템 디렉터리입니다. GetSystemDirectory 함수를 사용하여 이 디렉터리의 경로를 가져옵니다.
  4. 16비트 시스템 디렉터리입니다. 이 디렉터리의 경로를 가져오는 함수는 없지만 검색됩니다. 이 디렉터리의 이름은 System입니다.
  5. Windows 디렉터리입니다. GetWindowsDirectory 함수를 사용하여 이 디렉터리의 경로를 가져옵니다.
  6. PATH 환경 변수에 나열된 디렉터리입니다.

[in] lpParameterBlock

새 애플리케이션의 매개 변수 블록을 정의하는 애플리케이션 정의 LOADPARMS32 구조체에 대한 포인터입니다.

사용되지 않는 모든 멤버를 NULL로 설정합니다. lpCmdLine을 제외하고 null로 끝나는 문자열이 사용되지 않는 경우 를 가리킵니다. 자세한 내용은 설명 부분을 참조하세요.

반환 값

함수가 성공하면 반환 값이 31보다 큽니다.

함수가 실패하면 반환 값은 다음 값 중 하나일 수 있는 오류 값입니다.

반환 코드/값 설명
0
시스템이 메모리 또는 리소스가 부족합니다.
ERROR_BAD_FORMAT
11L
.exe 파일이 잘못되었습니다.
ERROR_FILE_NOT_FOUND
2L
지정된 파일을 찾을 수 없습니다.
ERROR_PATH_NOT_FOUND
3l
지정된 경로를 찾을 수 없습니다.

설명

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

참고 항목

CreateProcess

동적 연결 라이브러리 함수

GetSystemDirectory

GetWindowsDirectory