【发布时间】:2015-11-24 21:57:50
【问题描述】:
我正在挖掘 .NET 源代码,发现了一个 COM 对象的互操作类。如果我有 guid,我该如何查找相关的 DLL 和类(就此而言,.NET 如何根据 guid 加载 DLL)?
它在 GAC 的某个地方吗?
【问题讨论】:
-
非常广泛的问题,如果您描述了您发现的内容,那么通过明确提示您在注册表和磁盘中的何处查找会更容易回答。
-
@HansPassant 是的,这是一个广泛的问题。主要是因为我不知道该问什么。我正在处理 stackoverflow.com/questions/33615152/… ,但没有人回答,所以我正在挖掘自己,并在此过程中学习一些关于 COM 的知识。
-
这不会让你走得太远,它使用了一个未记录的 api。您误读了 Guid,CLSID 是 333E6924-4353-4934-A7BE-5FB5BDDDB2D6。这会将您带到 c:\windows\system32\NaturalLanguage6.dll。用 C++ 编写,不能反编译。它确实嵌入了类型库,您可以通过从 Visual Studio 命令提示符运行 OleView.exe 来查看它。使用它的 File > View Typelib 菜单命令。但这就是你所能得到的。
-
@HansPassant 拆机呢?该课程必须从某个地方获取它的单词列表。
-
一切皆有可能,粗略估计在开始时每千字节机器代码大约需要 1 天。这是一个 1 兆字节的文件。