gpt4 book ai didi

windows - 为什么我不能浏览 dll 来了解其中的内容? : "Some components could not be browsed"

转载 作者:可可西里 更新时间:2023-11-01 11:57:30 31 4
gpt4 key购买 nike

我正在寻找一个丢失的 COM 接口(interface) X,我怀疑它是在 Y.dll 中定义的。我可以使用

查看这个假定的界面
grep X Y.dll

表示“匹配”。欢呼,怀疑得到证实!

唉,当我在 Visual Studio Express 中使用对象浏览器时,试图将 Y.dll 添加到我的自定义组件集中,我收到错误:“无法浏览某些组件”弹出窗口。

那么我无法浏览这个dll的原因是什么? COM 接口(interface)是否可以有意或无意地受到保护、隐藏、保护或遮蔽?显然我需要一个底漆!

从官方的角度来看,Microsoft 对此的所有了解似乎都缺乏洞察力:

This error generally occurs when you attempt to add a file type that does not support object browsing, such as .htm and .txt files, in the Component Selector dialog box. The Object Browser supports file types such as .bsc, .olb, .tlb, .dll, .exe, and .ocx.

说真的,dll或exe不支持对象浏览的原因是什么?初学者将不胜感激任何指向教程或书籍的指针!谢谢。

最佳答案

COM 对象浏览器依赖 metadata (type libraries) exported 通过 COM 服务器(dll、exe、ocx 等)。

问题是 COM 服务器不需要导出关于它实现的接口(interface)的任何元数据。不幸的是,我发现了很多这样的服务器(因此需要知道其他方式支持哪些 CoClasses、接口(interface)等)。

检查您的 COM 服务器 (y.dll) 是否包含名为“TYPELIB”的资源,类似于:

COM typelib resource

希望这对您有所帮助。

关于windows - 为什么我不能浏览 dll 来了解其中的内容? : "Some components could not be browsed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13897610/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com