Функция LoadModule (winbase.h)
Загружает и выполняет приложение или создает новый экземпляр существующего приложения.
Синтаксис
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 | Указатель на строку в стиле 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 |