getmodulefilename函数

 

C++)

1

2

3

4

5

DWORD WINAPI GetModuleFileName(

    _In_opt_  HMODULE hModule,

    _Out_     LPTSTR lpFilename,

    _In_      DWORD nSize

);

Long,如执行成功,返回复制到lpFileName的实际字符数量;零表示失败。使用GetLastError可以打印错误信息。

hModule Long

一个模块的句柄。可以是一个DLL模块,或者是一个应用程序的实例句柄。如果该参数为NULL,该函数返回该应用程序全路径。

lpFileName String

指定一个字串缓冲区,要在其中容纳文件的用NULL字符中止的路径名,hModule模块就是从这个文件装载进来的。

nSize Long

装载到缓冲区lpFileName的最大字符数量。

 

在Windows 95下,函数会核查应用程序的内部版本号是否为4.0或更大的一个数字。如果是,就返回一个长文件名,否则返回短文件名

原型及各参数解释

1

2

3

4

5

DWORD GetModuleFileName(

    HMODULE hModule,

    LPTSTR lpFilename,

    DWORD nSize

);

获得hModule所指的文件的名字。

hModule在LoadLibrary之类的函数会返回,是一个句柄,用来标记这个文件资源。

lpFilename是你存放返回的名字的内存块的指针,是一个输出参数,nSize是这个内存块的大小,用于防止溢出。

返回值是用于指示是否发生错误的。

 

 

1

2

3

4

5

DWORDGetModuleFileName(

HMODULEhModule,

LPTSTRlpFilename,

DWORDnSize

);

 
函数参数
 

HMODULE hModule 装载一个程序实例的句柄。如果该参数为NULL,该函数返回该当前应用程序全路径。

LPTSTR lpFileName 是你存放返回的名字的内存块的指针,是一个输出参数

DWORD nSize,装载到缓冲区lpFileName的最大数

 

函数返回值

 

如果返回为成功,将在lpFileName的缓冲区当中返回相应模块的路径,如果所设的nSize过小,那么返回仅按所设置缓冲区大小返回相应字符串内容。

如果函数失败,返回值将为0,利用GetLastError可获得异常代码。

 

头文件

windows.h

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

#include <windows.h>

#include <stdio.h>

BOOL CreateSampleService()

{

    TCHAR szPath[MAX_PATH];

    if( !GetModuleFileName( NULL, szPath, MAX_PATH ) )

    {

        printf("GetModuleFileName failed (%d)\n", GetLastError());

        return FALSE;

    }

return TRUE;

}

/*

如果想获得某个正在运行的EXE或者DLL的全路径可以这样写代码

GetModuleFileNameEx(hProcess,hInst,lpFile,MAX_PATH);//注意下缓冲区就行了。

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值