LoadModule

【勇芳软件工作室】汉化HomePreviousNext

LoadModule功能加载并执行基于Windows的应用程序或创建现有基于Windows的应用程序的新实例。

提供此函数以兼容早期版本的Windows。基于Win32的应用程序应使用CreateProcess功能。

DWORD LoadModule(

LPCSTR 【lpModuleName】,//要加载的文件名的地址
LPVOID 【lpParameterBlock】//新建模块的参数块地址
); 

参数

【lpModuleName】

指向包含要运行的应用程序的文件名的以null结尾的字符串。如果【lpModuleName】参数不包含目录路径,Windows将按以下顺序搜索可执行文件:

1.应用程序加载的目录。

2.当前目录。

3.Windows 95: Windows系统目录。使用GetSystemDirectory函数获取此目录的路径。

Windows NT: 32位Windows系统目录。使用GetSystemDirectory函数获取此目录的路径。该目录的名称是SYSTEM32。

4.Windows NT: 16位Windows系统目录。没有获取此目录的路径的Win32函数,但它被搜索。该目录的名称是SYSTEM。

5.Windows目录。使用GetWindowsDirectory函数获取此目录的路径。

6. PATH环境变量中列出的目录。

【lpParameterBlock】

指向定义新应用程序参数块的应用程序定义的LOADPARMS32结构。

LOADPARMS32结构具有以下形式:

typedef struct tagLOADPARMS32 {en

LPSTR lpEnvAddress; //环境字符串的地址

LPSTR lpCmdLine; //命令行地址

LPSTR lpCmdShow; //如何显示新程序

DWORD dwReserved; //必须为零

} LOADPARMS32;

会员描述
lpEnvAddress指向为新进程提供环境字符串的以null结尾的字符串数组。该数组的值为NULL作为其最后一个条目。此参数的值为NULL会导致新进程以与调用进程相同的环境启动。
lpCmdLine指向包含正确形成的命令行的Pascal风格的字符串。字符串的第一个字节包含字符串中的字节数。字符串的其余部分包含命令行参数,不包括子进程的名称。如果没有命令行参数,则此参数必须指向零长度字符串;它不能为NULL。
lpCmdShow指向包含两个WORD值的结构。第一个值必须始终设置为2。第二个值指定应用程序窗口如何显示,并用于向CreateProcess 功能提供STARTUPINFO结构的wShowWindow成员。有关可接受值的列表,请参阅ShowWindow函数的【nCmdShow】参数的描述。
//保留,必须设置为零This parameter is reserved; it must be zero.

将所有未使用的成员设置为NULL,lpCmdLine除外,如果不使用,则必须指向一个空值终止的字符串。

返回值

如果函数成功,返回值大于31。

如果函数失败,返回值是一个错误值,它可能是以下之一:

含义
0系统内存不足或资源不足。
ERROR_BAD_FORMAT.EXE文件无效(非Win32 .EXE或.EXE映像中的错误)。
ERROR_FILE_NOT_FOUND找不到指定的文件。
ERROR_PATH_NOT_FOUND找不到指定的路径。

备注

基于Win32的应用程序应使用CreateProcess功能。在Win32 API中,LoadModule函数的实现调用CreateProcess.以下部分将介绍如何形成CreateProcess的每个参数:

CreateProcess参数
【lpszImageName】LoadModule 【lpModuleName】参数。
【lpszCommandLine】LoadModule 【lpParameterBlock->lpCmdLine.】
【lpsaThread】NULL.
【lpvEnvironment】NULL.
【fInheritHandles】FALSE.
【fdwCreate】0.
【The structure is initialized to zero.】LoadModule 【lpParameterBlock->lpEnvAddress.】
【lpszCurDir】NULL.
【lpsiStartInfo】结构初始化为零。cb成员设置为结构的大小,wShowWindow成员设置为LoadModule 【lpParameterBlock->lpCmdShow】参数的第二个字的值。
【lppiProcInfo.hProcess】手柄立即关闭。
【lppiProcInfo.hThread】手柄立即关闭。

也可以看看

CreateProcess, GetSystemDirectory, GetWindowsDirectory, ShowWindow, STARTUPINFO, WinExec