怎样从DLL文件中得到CLSID

ljg963419 2005-03-08 05:20:57

目的:1从DLL文件中读取它的CLSID(每个DLL文件的CLSID是永远不变的)
2根据CLSID来判断是不是本机生成的(因为每台机器生成的CLSID都与机器有关,
而且其它机器通过这个CLSID就可以找到些机器,如导出的组件就可以自动找到主机)
3通过CLSID在注册表中找到ProgID
参考:我知道VC中有CLSIDFromProgID和ProgIDFromCLSID可以实现1和3,但不知VB是
否可以实现.
QQ:38956002
...全文
570 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
happywqw 2005-03-11
  • 打赏
  • 举报
回复
在VBaccelerator的代码里已经实现了GUID的生成算法,不过是不可逆的!
僵哥 2005-03-09
  • 打赏
  • 举报
回复
一楼上面已经介绍一CLSIDFromProgID和ProgIDFromCLSID,那我就介绍一种
ProgID and CLSID from DLL File:

Reference:TypeLib Information TLBINF32.DLL(PATH:SystemDirectory)

Dim TLIApp As TLI.TLIApplication
Dim TLBInfo As TLI.TypeLibInfo
Dim TypeInf As TLI.CoClassInfo
Set TLIApp = New TLI.TLIApplication
Dim ProgID As String
Dim CLSID As String

Set TLBInfo = tliap.TypeLibInfoFromFile("e:\EasyDCOMObject.DLL")

For Each TypeInf In TLBInfo.CoClasses
ProgID = TypeInf.Name
CLSID = TypeInf.Guid
Debug.Print ProgID
Debug.Print CLSID
Next
------------------------------------------------------------------
Dim TLIApp As Object
Dim TLBInfo As Object
Dim TypeInf As Object
Set TLIApp = CreateObject("TLI.TLIApplication")
Dim ProgID As String
Dim CLSID As String

Set TLBInfo = tliap.TypeLibInfoFromFile("e:\EasyDCOMObject.DLL")

For Each TypeInf In TLBInfo.CoClasses
ProgID = TypeInf.Name
CLSID = TypeInf.Guid
Debug.Print ProgID
Debug.Print CLSID
Next
AprilSong 2005-03-08
  • 打赏
  • 举报
回复
这里的代码讲得很详细了~

http://www.ccw.com.cn/htm/app/aprog/01_5_11_2.asp
TechnoFantasy 2005-03-08
  • 打赏
  • 举报
回复
How To Call CLSID And ProgID Related COM APIs in Visual Basic
http://support.microsoft.com/kb/183544/EN-US/

介绍了怎么在VB中调用CLSIDFromProgID和ProgIDFromCLSID

至于2我估计不可能,因为这个GUID生成的算法没公开,我估计即使公开了也应该是一种不可逆的算法。

863

社区成员

发帖
与我相关
我的任务
社区描述
VB COM/DCOM/COM+
c++ 技术论坛(原bbs)
社区管理员
  • COM/DCOM/COM+社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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