Поделиться через


Функция LoadModule (winbase.h)

Загружает и выполняет приложение или создает новый экземпляр существующего приложения.

Примечание Эта функция предоставляется только для совместимости с 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 Указатель на строку в стиле Pascal, содержащую правильно сформированную командную строку. Первый байт строки содержит количество байтов в строке. Оставшаяся часть строки содержит аргументы командной строки, за исключением имени дочернего процесса. Если аргументы командной строки отсутствуют, этот параметр должен указывать на строку нулевой длины; значение не может иметь значение NULL.
lpCmdShow Указатель на структуру, содержащую два значения WORD . Первое значение всегда должно быть равно двум. Второе значение указывает, как должно отображаться окно приложения, и используется для передачи элемента wShowWindow структуры STARTUPINFO в функцию CreateProcess . Список допустимых значений см. в описании параметра nCmdShow функции ShowWindow .
dwReserved Этот параметр зарезервирован; значение должно быть равно нулю.
 

Приложения должны использовать функцию CreateProcess вместо LoadModule. Функция LoadModule вызывает CreateProcess , формируя параметры следующим образом.

Параметр CreateProcess Используемый аргумент
lpszApplicationName lpModuleName
lpszCommandLine lpParameterBlock. lpCmdLine
lpProcessAttributes NULL
lpThreadAttributes NULL
bInheritHandles Ложь.
dwCreationFlags 0
lpEnvironment lpParameterBlock. lpEnvAddress
lpCurrentDirectory NULL
lpStartupInfo Структура инициализируется нулевым значением. Член cb имеет размер структуры. Член wShowWindow имеет значение второго слова lpParameterBlock. lpCmdShow.
lpProcessInformation.hProcess Дескриптор немедленно закрывается.
lpProcessInformation.hThread Дескриптор немедленно закрывается.

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header winbase.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

CreateProcess

Функции библиотеки динамической компоновки

GetSystemDirectory

GetWindowsDirectory