标签: oleview

iviewers中的dllregisterserver失败了

当我尝试运行Oleview时,我收到一条错误,说DllRegisterServer因IViewer.dll而失败(抱歉我想发布截图但我不能直到获得10点声望= p)

Oleview会运行,但就像msg所说的那样,你无法查看接口,而这正是我想做的事情.

我找到了我的iviewer.dll并运行了regsvr32就好了.所以我不确定是什么意思.

regsvr32 oleview

57
推荐指数
2
解决办法
2万
查看次数

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

我正在尝试使用Python中的COM对象(win32com)来自动化进程,但是我没有得到预期的结果......是否有工具来探索/测试COM对象而无需编写特定的程序?我的意思是,是否存在允许例如实例化COM对象并调用其方法的东西?

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

windows com oleview

15
推荐指数
3
解决办法
2万
查看次数

是否可以将C#Enum暴露给COM Interop调用者,如果是这样,怎么样?

我有一个通过COM Interop调用的托管程序集.像VBScript客户端,Perl客户端等.

课程装饰有

[ClassInterface(ClassInterfaceType.AutoDual)]
[GuidAttribute("ebc25cf6-9120-4283-b972-0e5520d0000E")]
[ComVisible(true)]
Run Code Online (Sandbox Code Playgroud)

然后当然我做了regasm的事情,所有方法都运行得很好.

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

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

[GuidAttribute("ebc25cf6-9120-4283-b972-0e5520d0000E")]
[ComVisible(true)]
Run Code Online (Sandbox Code Playgroud)

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

.net com enums interop oleview

13
推荐指数
2
解决办法
9812
查看次数

Oleview 报错“错误加载类型库”?

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

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

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

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

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

com dll typelib oleview

5
推荐指数
1
解决办法
925
查看次数

如何在没有接口的情况下绑定COM事件

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

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

UPDATE

以下是我对VB6包装器的错误(仍在积极更新).

  • 在OleViewer中,我得到了

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

  • 在Visual Studio中,我得到:

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

c# vb6 late-binding .net-3.5 oleview

5
推荐指数
1
解决办法
660
查看次数

将 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 文件,但我正在寻找适合自动构建的解决方案。

.net com interop idl oleview

5
推荐指数
1
解决办法
1952
查看次数

访问COM接口方法C++

都:

  • CLSID
  • IID

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

  • CoCreateInstance的()

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

那我如何从C++访问Interface的方法呢?无:

  • ATL
  • MFC
  • 只是简单的C++

之后,我使用CreateInstance()

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

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

interface IS8Simulation : IDispatch {
    HRESULT Open([in] BSTR FileName);
};
Run Code Online (Sandbox Code Playgroud)

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

问候

c++ com oleview

1
推荐指数
1
解决办法
1470
查看次数

标签 统计

oleview ×7

com ×5

.net ×2

interop ×2

.net-3.5 ×1

c# ×1

c++ ×1

dll ×1

enums ×1

idl ×1

late-binding ×1

regsvr32 ×1

typelib ×1

vb6 ×1

windows ×1