问题标签 [interop]

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 投票
2 回答
4802 浏览

dll - 为什么会出现异常 - 无法加载 DLL '?????.dll':找不到指定的模块

我正在使用 Emgu.CV,它是 OpenCV 库的 C# 包装器。

我将 Emgu.CV 源更改为从最新的 OpenCV 库 cv110.dll 而不是 cv100.dll 调用,现在我收到此错误(其中 ????? 是 cv110.dll)。我已将 cv110.dll 文件放置在与 cv100.dll 文件相同的位置,但这无济于事。

在更广泛的范围内,查找 dll 时的文件夹搜索顺序是什么,以及此错误是否还有其他原因。

0 投票
3 回答
1956 浏览

vb.net - 使用 VS 2008 (vb.net) 我需要创建一个可以在经典 ASP 中使用 CreateObject 的对象

我对 VB.net 很陌生。我以前在 VB6 中编写过这些对象。我只是迷失在 VB.net 中,但是(踢和尖叫)我必须学习如何做到这一点。我已经用谷歌搜索了几个小时,只向前迈出了一小步。任何人都可以发布一个链接来解释从头到尾如何做到这一点?

我已经设法编写了类对象,但我不知道如何注册它以及 CreateObject("Name1.Name2") 中的 name1 和 name2 来自哪里。

Regsrv32 将不起作用。它说“找不到入口点”并且不会注册它。另外,我不能把它放到 Assemblies 目录中。我读了一些关于使用 regasm 命令的内容,但我似乎也无法完成这项工作。

提前感谢您的任何帮助。

0 投票
4 回答
5399 浏览

c# - 在不使用 COM 的情况下从 C++ 调用 C# 方法

有没有办法创建 C# 对象并从非托管 C++ 调用方法,但不使用 COM Iterop?我正在寻找类似 JNI(但适用于 .Net)的东西,您可以在其中手动创建 VM、创建对象等。

0 投票
3 回答
48609 浏览

.net - 由于以下错误,检索具有 CLSID {XXXX} 的组件的 COM 类工厂失败:80080005

.Net 中的“检索 CLSID {XXXX} 组件的 COM 类工厂失败,原因是以下错误:80080005”错误的故障排除过程是什么?澄清一下:我在运行时得到这个,在我的 XP 机器上,客户端是在管理员帐户下运行的 .net 代码。{XXXX} 是指我们内部的 COM 组件之一。

据我了解, 0x80080005 是指“权限被拒绝”,但我该去哪里检查/更改权限?还是我在这里完全错了,错误来自组件本身,而不是来自 Windows COM 子系统?

0 投票
2 回答
5089 浏览

c# - 在 C# 中为客户端和服务器使用 C++ COM 接口

我需要让一段 C# 代码通过 COM 与各种实现进行交互。

为了使该集成的用户更容易,我在 IDL 中包含了交互接口(作为相关现有 DLL 的一部分,但没有 coclass 或实现),然后通过运行 Tlbimp 将其放入我的 C# 代码中以创建类型定义。

我实现了我的 C#,基于 Windows 注册表信息创建 COM 对象并将对象转换为我需要的接口。

然后我在一个单独的项目中创建了接口的 C# 实现并注册了它。主程序正确创建了测试 COM 对象,但未能将其转换为接口(使用 C#'as' 时获取空对象,获取显式转换的 InvalidCastException)。

有人可以建议为什么接口没有被测试对象识别为实现吗?

这是 IDL 中的接口定义(在 VS 2005 中用 C++ 编译):

这是 Tlbimp 为 C# 创建的存根:

这是主要 C# 代码的一部分,通过其 ProgID 创建一个 COM 对象并将其转换为 IScriptGenerator 接口:

这是实现 C# 代码,以测试它是否正常工作(但它不是):

0 投票
1 回答
364 浏览

vb.net - 在 VB.net 中转换 ComObject 的问题

我有一个 Word.Field 对象,它是一个复选框,Type属性等于 wdFieldFormCheckBox。我正在尝试将 Word.Field 对象转换为 Word.CheckBox 对象,但出现转换错误。

如何将 Word.Field 对象转换为 Word.CheckBox 对象?

0 投票
5 回答
8065 浏览

c# - 连接到 C# 中的 COM 事件 - 支持托管和非托管服务器

我正在编写需要连接到 COM 事件的 C# 代码。我因此实现了 IConnectionPointContainer 和 IConnectionPoint 的使用:

问题是,当 COM 服务器实际上是在 .Net(例如 C#)中实现时,在 .Net 创建它之后,它会将其作为 .Net 对象而不是 COM 对象来处理。由于 .Net 对象没有实现 IConnectionPointContainer 接口,因此在尝试将对象强制转换为该接口时,我得到了 null。

知道如何解决这个问题吗?我当然可以在 C# COM 服务器中自己实现 IConnectionPointContainer,但是我想要一个更简单的解决方案,我可以轻松地向其他需要实现 COM 服务器的开发人员解释。

PS 我必须使用 IConnectionPointContainer,因为 COM 服务器可能在非 .Net(C++、Java)中实现。

谢谢, 因巴尔

0 投票
3 回答
1262 浏览

java - JavaFX 和 Java 互操作性

我能否像使用 JavaFX Script 一样直接从 Java 中利用新 JavaFX API 提供的新功能?

所有底层 JavaFX API 是纯 Java 或 JavaFX 脚本还是混合?

0 投票
5 回答
19623 浏览

.net - .NET 错误:找不到依赖项“Microsoft.Office.Interop.Excel”

我的同事编写了一个驱动 Excel 的 DLL。
当我在我的 .NET 应用程序中引用他的 DLL 时,我收到一个警告:

我的应用程序将编译。
但是,当我使用我同事的 DLL 访问 Excel 时,会引发异常,并显示上面的消息。

我们应该有相同的设置: Windows XP Pro SP3、VS2003、.NET 1.1、Office 2003

我的问题似乎与this question类似,但我不知道它是否相同。

任何帮助或建议都非常感谢!

更新:

感谢您到目前为止的回答!

我没有添加对Microsoft.Office.Interop.Excel.
我当然不应该这样做?
但是:当我尝试添加此引用时,在“添加引用”对话框中找不到Microsoft.Office.Interop.Excel

大概这意味着我缺少一个 DLL?
......但我不明白这怎么会发生?!

更新(固定):

@ConcernedOfTunbridgeWells 为我解决了这个问题:安装主互操作程序集。

0 投票
5 回答
5324 浏览

c# - 使用 ASP.NET 自动化 Excel

背景

我们正在使用 ASP.NET 2.0 开发一些内部实用程序。其中之一是从数据库中提取一些信息并构建一个 Excel 工作簿,其中包含许多电子表格,其中包含基于对数据库的查询的数据。

问题

概念验证原型(一个简单的 ASP.NET 页面,从数据库中查询单个项目并打开 Excel 以将数据添加到工作表)在开发机器上本地运行时运行良好,可以愉快地创建和显示 Excel 电子表格按照要求。但是,当在我们的服务器上运行时,我们在尝试实例化 Excel 时收到以下错误。

无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的 COM 对象转换为接口类型“Microsoft.Office.Interop.Excel._Application”。此操作失败,因为 IID 为“{000208D5-0000-0000-C000-000000000046}”的接口的 COM 组件上的 QueryInterface 调用因以下错误而失败:不支持此类接口(来自 HRESULT 的异常:0x80004002 (E_NOINTERFACE)) .

解决方案?

我们正在使用 PIA for Excel 2003,并且我们在服务器上安装了 Excel 2003 和 PIA。谁能解释为什么这不起作用或给我们一些关于如何追踪问题的提示?

感谢您提供的任何帮助。