在COM组件中如何获得它本省所在的路径?

milee 2006-08-16 04:26:36
我写了一个组件(DLL),现在想要在其中获得这个DLL所在的路径(可以不包括文件名),我使用了GetCurrentDirectory,但获得的是调用这个组件的客户程序的路径,不是我想要的,还有没有其他办法啊?
在注册这个组件的时候好像也要用到这个组件的路径,那是怎么获得的呢?有没有办法把引用?
多谢了,急用。
...全文
178 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Juchiyufei 2006-08-18
  • 打赏
  • 举报
回复
CString curdir;
::GetModuleFileName(::AfxGetInstanceHandle (),curdir.GetBuffer (_MAX_PATH),_MAX_PATH);
curdir.ReleaseBuffer();

=====================

在com中调AfxGetInstanceHandle 来取得instance可不是很好呀。
ldsjlzy 2006-08-16
  • 打赏
  • 举报
回复
再加一句取其路径
curdir=curdir.Left(curdir.ReverseFind (_T('\\')));
milee 2006-08-16
  • 打赏
  • 举报
回复
呵呵,我原来也想通过注册表去获得,但是用了 ldsjlzy(小李) 提供的函数确实可以做到,多谢了。
唯一不完美的是它把那个DLL的文件名也加进去了,我原来只想要路径。
LegerWu 2006-08-16
  • 打赏
  • 举报
回复
通过查询注册表,应该可以获得的。
ldsjlzy 2006-08-16
  • 打赏
  • 举报
回复
CString curdir;
::GetModuleFileName(::AfxGetInstanceHandle (),curdir.GetBuffer (_MAX_PATH),_MAX_PATH);
curdir.ReleaseBuffer();

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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