loadModule 函数 (winbase.h)
加载和执行应用程序或创建现有应用程序的新实例。
注意 提供此函数只是为了与 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 | 指向包含正确格式的命令行的 Pascal 样式字符串的指针。 字符串的第一个字节包含字符串中的字节数。 字符串的其余部分包含命令行参数,不包括子进程的名称。 如果没有命令行参数,则此参数必须指向零长度字符串;不能为 NULL。 |
lpCmdShow | 指向包含两个 WORD 值的 结构的指针。 第一个值必须始终设置为 2。 第二个值指定应用程序窗口的显示方式,用于向 CreateProcess 函数提供 STARTUPINFO 结构的 wShowWindow 成员。 有关可接受的值的列表,请参阅 ShowWindow 函数的 nCmdShow 参数的说明。 |
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 | 句柄立即关闭。 |
要求
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | winbase.h (包括 Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |