- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
即使 TypeLib 完全为空,是否可以找到通常使用组件对象模型 (COM) TypeLib 注册的所有接口(interface)(类、参数等)?如果是这样,你会怎么做?我相信另一个术语是“匿名 COM”。我确信此 COM 存在可访问的接口(interface),因为我有一个应用程序正在使用 TypeLib 中未列出的类。
最佳答案
如果类型库为空,则无法在 COM 库中找到有关类型的信息。
您至少需要 typelib 中的一个 coclass 条目才能找到 IUnknown 的实现。 .
如果你有,那么你实际上可以创建类的实例,然后调用 QueryInterface在 IUnknown 上为 IDispatch实现(如果存在)。
如果存在 IDispatch 接口(interface),则可以调用 GetTypeInfo获取有关已实现接口(interface)的信息。
如果您需要对 IDispatch 进行后期绑定(bind)调用,则需要调用 Invoke method .
请注意,您提到了类型库,但进程内 COM 服务器通常将类型库嵌入到 dll 中,即库中表示的类型的实现。你确定你也没有检查过吗?或者你确定你有类型库并且它确实是空白的?
如果类型库确实是空白并且 dll 不包含它,那么从其他客户端针对它编译的意义上说,类型库完全有可能是“私有(private)的”。 COM 在运行时不一定需要类型库。暴露模式IClassFactory interface实现是导出具有众所周知的签名的标准 DLL 函数。
可以轻松调用LoadLibrary ,然后调用GetProcAddress并将结果转换为 IClassFactory。从那里,他们将使用他们知道的私有(private) GUID 和 IID(不是来自类型库)以及他们已经私有(private)定义并从那里工作的 COM 接口(interface)。
对于这样的事情,我能想到的唯一理由是一种混淆和/或解决隐私/安全问题的形式,只允许服务器生产者批准的客户端调用它。
它对您没有帮助,但可以解释为什么您看到的类型库中没有任何信息,同时看到其他客户端使用该库。
关于reflection - 你如何找到没有 typelib 的 COM 接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2365500/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!