问题标签 [oleview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1686 浏览

c++ - 访问 COM 接口方法 C++

两个都:

  • CLSID
  • 独立身份证

已指定上述内容,并使用:

  • 协同创建实例()

返回由上面的 CLSID 指定的类的单个未初始化对象。

然后如何从 C++ 访问接口的方法?没有:

  • ATL
  • MFC
  • 只是普通的 C++

之后,我使用 CreateInstance()

我遇到了麻烦,使用 CreateInstance() - 最后一个参数 - ppv

使用oleview,可以看到上面指定的IIDabove IID的方法,比如:

我怎样才能访问上述内容?示例/指导 - 请

问候

0 投票
4 回答
957 浏览

dll - Oleview错误“错误加载类型库”?

类型库声明应用程序或动态链接库 (DLL) 公开的类、接口、常量和过程。类型库通常是程序文件中的资源;它也可以是扩展名为 .tlb 或 .olb 的独立二进制文件。

那么是否有可能某些 DLL 仍然公开接口而不被声明为 TypeLib。

实际上我正在尝试从 oleview 打开一个 dll 并显示错误消息“错误加载类型库”。

根据我的理解,如果我们有从 DLL 暴露的接口,那么它应该由 oleview 打开,否则它不能有暴露的接口或函数。

我们有 dll 暴露接口但仍然无法被 Oleview 查看的任何可能性。

0 投票
3 回答
10916 浏览

.net - 是否可以向 COM 互操作调用者公开 C# 枚举,如果可以,如何?

我有一个通过 COM 互操作调用的托管程序集。像 VBScript 客户端、Perl 客户端等等。

班级装饰着

然后我当然会做 regasm 的事情,所有的方法都工作得很好。

但是程序集中也有枚举类型。我想对枚举值使用符号名称 COM 应用程序。

如何通过 COM 互操作公开枚举?我只需要添加这些属性吗?

然后,如何在 VBScript 中引用这些符号名称?我在 OleView 中看不到枚举类型。(我应该吗?)我在 OleView 中看到了所有其他类型。

0 投票
1 回答
318 浏览

java - 如何找到用于 COM4j 的 DirectShow 接口的类型库标识符

我正在尝试使用 COM4j 与 Windows 上的 Java 网络摄像头交互(不通过 FMJ 或 JMF 框架)。但是,我无法找到 Direct Show 的类型库标识符来构建接口。COM4j 站点建议使用 OleView 来查找类型库,但我已经浏览了那里的类型库列表,但没有找到任何看起来可能提供 DirectShow 接口的东西。

0 投票
4 回答
33997 浏览

windows - 是否有用于探索/测试 COM 对象的工具?

我正在尝试通过使用 Python (win32com) 中的 COM 对象来自动化一个过程,但我没有得到预期的结果......有没有工具可以探索/测试 COM 对象而无需编写特定的程序?我的意思是,有什么东西可以让例如实例化一个 COM 对象并调用它的方法吗?

(基本上我想找出我的意外结果是否是win32com的错,我想避免安装Visual Studio来编写C#应用程序)

0 投票
1 回答
640 浏览

.net - 无法使用 REGASM /u 删除 COM [PrimaryInteropAssemblyName] typelib 值

我希望有人能指出我正确的方向。我分几个步骤列出了问题,希望能澄清问题。

  1. 我使用regsvr32将 C++ DLL 注册到 COM 中。
  2. 然后,我将tlbimp与 C++ DLL 上的/primary属性一起使用,以制作可供 C# 使用的程序集文件。
  3. 然后我将新生成的程序集注册到 GAC 中。
  4. 我在生成的程序集上调用 regasm,以便 C++ 类型库包含对 GACed 程序集的引用。

问题是当我使用regasm /u时,它说它“已成功取消注册”。但是,当我使用 OLEVIEW 检查 COM 中的类型库时,它仍然显示对 GACed 程序集的 PrimaryInterop 引用。

我也尝试过使用 regasm /u /tlb,但我收到警告说:

在此处输入图像描述

感谢您的帮助,因为这让我发疯了;)

0 投票
2 回答
17269 浏览

regsvr32 - iviewers 中的 dllregisterserver 失败

当我尝试运行 Oleview 时,我收到一条错误消息,指出 IViewer.dll 的 DllRegisterServer 失败(抱歉,我想发布屏幕截图,但在获得 10 个声望 =p 之前我不能发布)

Oleview 将运行,但就像 msg 所说,您无法查看正是我想要做的接口。

我找到了我的 iviewer.dll 并在上面运行了 regsvr32 就好了。所以我不确定是怎么回事。

0 投票
2 回答
728 浏览

c# - 如何在没有接口的情况下后期绑定 COM 事件

我需要后期绑定到 3.5 C# 应用程序中的第 3 方 VB6 COM 对象(以避免我们当前拥有的版本依赖关系)。提供的 dll 在大多数非后期绑定方式中都不能使用,因为一些错误会在我们尝试正常使用它时导致错误。目前,我们正在使用一个自定义的 VB6 包装器,它使事情非常特定于版本,但是我发现我可以使用后期绑定来访问属性和方法。现在,我正在尝试后期绑定事件,但是我读过的所有内容都说我需要从 COM 包装器的接口继承来创建所需的事件接收器。这是一篇这样的文章

所以,我的问题是是否可以在编译时不引用 dll 的情况下执行后期绑定事件处理?

更新

这是我在使用 VB6 包装器时遇到的错误(仍在积极更新中)。

  • 在 OleViewer 中,我得到

无法反编译所选项目 加载类型库/DLL 时出错。TYPE_E_CANTLOADLIBRARY ($80029C4A)

  • 在 Visual Studio 中,我得到:

无法确定 COM 引用“3rdPartyDLL”的依赖关系。加载类型库/DLL 时出错。(来自 HRESULT 的异常:0x80029C4A (TYPE_E_CANTLOADLIBRARY))

0 投票
2 回答
1572 浏览

.net - 将 TLB 转换为 IDL

有谁知道从类型库(.tlb)生成 idl 文件的命令行工具?这样做的原因是为了摆脱 regasm 生成的枚举值中的下划线。此博客中讨论了枚举中的下划线问题

http://blogs.artinsoft.net/mrojas/archive/2010/05/17/interop-remove-prefix-from-c-enums-for-com.aspx

我知道 OLEView 可以生成 IDL 文件,但我正在寻找一种适合自动构建的解决方案。

0 投票
1 回答
1076 浏览

idl - 编译使用 OleView 创建的 IDL 时出现问题

为了更正枚举值名称的问题,在搜索之后,我需要修改我的 DLL 的 TLB 文件。我需要做的第一步是创建 IDL 文件。所以我使用 Oleview 创建文件。在进行修改以纠正我的问题之前,我决定尝试编译 IDL 文件。这给了我错误:

搜索问题后,我发现这个问题是纠正错误的方法。所以我改变了地方的枚举定义,现在我得到了这个错误:

我不知道是什么导致了错误,因为我只反转了我的枚举定义和函数定义。是什么导致我的文件中的最后一个错误?