区别:
GetModleFileName 返回进程名包含路径
GetModuleBaseName 返回进程名不包含路径
原型:
GetModleFileName(NULL, lpText, sizeof(lpText));
GetModuleBaseName(GetCurrentProcess(), NULL, lpText, sizeof(lpText));
注意:
使用GetModuleBaseName必须包含头文件psapi.h和库文件Psapi.lib
下面是获取当前进程名的方法
方法1: GetModleFileName()先得到进程全路径名,然后提取出进程名
//得到当前进程全路径
string GetFullName()
{
//hModule为NULL则返回该当前应用程序全路径
//也可以使LoadLibrary之类的函数返回的句柄
char szPath[MAX_PATH] = { 0 };
::GetModuleFileName(NULL, szPath, MAX_PATH);
return szPath;
}
//得到文件名(包含扩展名)
const char* GetFileName(const char* pFile)
{
if (NULL == pFile || 0 == strlen(pFile))
{
return "";
}
const char *pPos = strrchr(pFile, '\\');
if (NULL == pPos)
{
pPos = strrchr(pFile, '/');
if (NULL == pPos)
{
return "";
}
}
return pPos + 1;
}
方法2: 直接调用GetModuleBaseName()获取进程名
#include <psapi.h>
#pragma comment (lib,"Psapi.lib")
char szPath[MAX_PATH] = { 0 };
GetModuleBaseName(GetCurrentProcess(), NULL, szPath, sizeof(szPath));