Функция LoadModule


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

Обратите внимание! на то, что эта функция предусматривается только для совместимости с 16-разрядными версиями Windows. Приложения должны использовать функцию CreateProcess.

Синтаксис

DWORD LoadModule(
  LPCSTR lpModuleName,
  LPVOID lpParameterBlock
);

Параметры

lpModuleName
[in] Указатель на символьную строку с нулем в конце, которая содержит имя файла запускаемого приложения. При определении пути, убедитесь, что использовали обратные слэши (\), а не прямые слэши (/). Если параметр lpModuleName не содержит путь к каталогу, система ищет исполняемый файл в таком порядке:
  1. Каталог из которого загружено приложение.
  2. Текущий каталог.
  3. Системный каталог. Используйте функцию GetSystemDirectory, чтобы получить путь к этому каталогу.
  4. 16-разрядный системный каталог. Функции, которая получает путь к этому каталогу нет, но он ищется. Имя этого каталога -  System.
  5. Каталог Windows. Используйте функцию GetWindowsDirectory, чтобы получить путь к этому каталогу.
  6. Каталоги, которые внесены в список в переменной окружения PATH.

lpParameterBlock

[in] Указатель на определяемую программой структуру LOADPARMS32, которая определяет блок параметров нового приложения. Установите все неиспользуемые члены в ПУСТО (NULL), исключая член lpCmdLine, который должен указывать на символьную строку с нулем в конце, если он не используется. Дополнительную информацию, см. в разделе Замечания.

Возвращаемые значения

Если функция завершается успешно, возвращаемое значение больше чем 31.

Если функция завершается ошибкой, возвращаемое значение - код ошибки, который может быть одним из ниже перечисленных значений.

Возвращаемый код Описание
0 Системе не хватает памяти или ресурсов..
ERROR_BAD_FORMAT .exe. файл неработоспособный.
ERROR_FILE_NOT_FOUND Заданный файл не был найден.
ERROR_PATH_NOT_FOUND Заданный путь не был найден.

Замечания

Структура LOADPARMS32 имеет нижеследующий синтаксис:

typedef struct tagLOADPARMS32 { 
  LPSTR lpEnvAddress;  // адрес строк среды 
  LPSTR lpCmdLine;     // адрес командной строки 
  LPSTR lpCmdShow;     // как показать новую программу 
  DWORD dwReserved;    // должен быть нуль 
} LOADPARMS32;

Член структуры Предназначение
lpEnvAddress Указатель на массив символьных строк с нулем в конце, которые обеспечивают строками конфигурации новый процесс. Массив имеет значение ПУСТО (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 FALSE
dwCreationFlags 0
lpEnvironment lpParameterBlock.lpEnvAddress
lpCurrentDirectory NULL
lpStartupInfo Структура инициализируется нулями. Член структуры cb устанавливается в размер структуры.  Член структуры wShowWindow устанавливается в значение второго слова lpParameterBlock.lpCmdShow.
lpProcessInformation.hProcess Дескриптор немедленно закрывается.
lpProcessInformation.hThread Дескриптор немедленно закрывается.

Смотри также

Обзор Динамически подключаемые библиотеки (DLL), Функции, используемые DLL CreateProcess, GetSystemDirectoryGetWindowsDirectory ShowWindow, WinExec, STARTUPINFO

Размещение и совместимость LoadModule

К

Windows XP

Да 

л

Windows 2000 Professional

Да

и

Windows NT  Workstation

Да 

е

Windows Me

Да

н

Windows 98

Да

т

Windows 95

Да

 
С

Windows Server 2003

Да

е Windows 2000 Server Да
р Windows NT Server Да  
в    
е    
р    

Используемая библиотека

Kernel32.lib

Используемая DLL kernel32.dll
 Заголовочный файл  

- объявлено в

Winbase.h

 - включено в

Windows.h

 Unicode

Реализовано как LoadModuleW(Unicode) и LoadModuleA (ANSI).

 Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz