DLL 获取当前路径

itachi777 2013-11-20 09:53:10
我用DLL给其程序调用时。dll需要获取当前dll路径。用GetModuleFilaName好像不行。有谁知道要怎么实现。谢谢!
...全文
228 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
itachi777 2013-11-20
  • 打赏
  • 举报
回复
引用 1 楼 jason_wentzel 的回复:
CString CUtility::GetMoudulePath() { CString strRetun = _T(""); #ifdef _UNICODE TCHAR szBuff[MAX_PATH]; HMODULE module = GetModuleHandle(0); GetModuleFileName(module, szBuff, sizeof(szBuff)); strRetun.Format(_T("%s"),szBuff); #else HMODULE module = GetModuleHandle(0); CHAR szBuff[MAX_PATH]; GetModuleFileName(module, szBuff, sizeof(szBuff)); strRetun.Format(_T("%s"),szBuff); #endif int pos = strRetun.ReverseFind(_T('\\')); if(pos != -1) { strRetun = strRetun.Left(pos); } return strRetun; }
谢谢,用这个方法可以。是我参数传错了
许文君 2013-11-20
  • 打赏
  • 举报
回复
GetModuleFilaName是可以的,但是句柄不能传NULL,得传dll句柄,具体可以通过dllmain attach时来保存一个全局变量,若传NULL,则获得的是exe的当前路径。
itachi777 2013-11-20
  • 打赏
  • 举报
回复
引用 2 楼 lgstudyvc 的回复:
具体看或取什么的当前路径 也可通过接口,借助exe的来获取
恩恩,谢谢。是个好建议
itachi777 2013-11-20
  • 打赏
  • 举报
回复
引用 1 楼 jason_wentzel 的回复:
CString CUtility::GetMoudulePath() { CString strRetun = _T(""); #ifdef _UNICODE TCHAR szBuff[MAX_PATH]; HMODULE module = GetModuleHandle(0); GetModuleFileName(module, szBuff, sizeof(szBuff)); strRetun.Format(_T("%s"),szBuff); #else HMODULE module = GetModuleHandle(0); CHAR szBuff[MAX_PATH]; GetModuleFileName(module, szBuff, sizeof(szBuff)); strRetun.Format(_T("%s"),szBuff); #endif int pos = strRetun.ReverseFind(_T('\\')); if(pos != -1) { strRetun = strRetun.Left(pos); } return strRetun; }
这个试了不行
lgstudyvc 2013-11-20
  • 打赏
  • 举报
回复
具体看或取什么的当前路径 也可通过接口,借助exe的来获取
孤客天涯 2013-11-20
  • 打赏
  • 举报
回复
CString CUtility::GetMoudulePath() { CString strRetun = _T(""); #ifdef _UNICODE TCHAR szBuff[MAX_PATH]; HMODULE module = GetModuleHandle(0); GetModuleFileName(module, szBuff, sizeof(szBuff)); strRetun.Format(_T("%s"),szBuff); #else HMODULE module = GetModuleHandle(0); CHAR szBuff[MAX_PATH]; GetModuleFileName(module, szBuff, sizeof(szBuff)); strRetun.Format(_T("%s"),szBuff); #endif int pos = strRetun.ReverseFind(_T('\\')); if(pos != -1) { strRetun = strRetun.Left(pos); } return strRetun; }

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧