您当前的位置: 首页 >  windows

柳鲲鹏

暂无认证

  • 0浏览

    0关注

    4642博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

WINDOWS下获得DLL所在目录的代码

柳鲲鹏 发布时间:2020-04-29 09:31:26 ,浏览量:0

  获取执行文件所在目录:

static char* getRunningPath(const char* pExe, char* pBuffer, const UINT appPathSize)
{
	if (GetModuleFileNameA(GetSelfModuleHandle(), pBuffer, appPathSize) == 0)
	{
		return NULL;
	}
	return pBuffer;
}

  如果要获取加载的dll目录呢?

//windows下获取当前dll的句柄
static HMODULE GetSelfModuleHandle()
{
	MEMORY_BASIC_INFORMATION mbi;
	return ((::VirtualQuery(GetSelfModuleHandle, &mbi, sizeof(mbi)) != 0) ? (HMODULE)mbi.AllocationBase : NULL);
}

static char* getRunningPath(const char* pExe, char* pBuffer, const UINT appPathSize)
{
	if (GetModuleFileNameA(
        (pExe != NULL && strlen(pExe) > 0) ? NULL : GetSelfModuleHandle(),
        pBuffer, appPathSize) == 0)
	{
		return NULL;
	}
	return pBuffer;
}

  如果有执行文件,就获取执行文件的目录,否则获取so的目录。

关注
打赏
1665724893
查看更多评论
立即登录/注册

微信扫码登录

0.0465s