com-interop相关内容

在实时(未保存)Excel 数据和 C# 对象之间进行交互的最快方法

我想知道在打开的 Excel 工作簿和 C# 对象之间读取和写入数据的最快方法是什么.背景是我想开发一个从 Excel 中使用并使用 Excel 中保存的数据的 c# 应用程序. 业务逻辑将驻留在 c# 应用程序中,但数据将驻留在 Excel 工作簿中.用户将使用 Excel 并单击 Excel 工作簿上的按钮(或执行类似操作)以启动 c# 应用程序.然后,c# 应用程序将从 Excel 工 ..
发布时间:2021-12-02 22:38:49 C#/.NET

无法将“microsoft.Office.Interop.Excel.ApplicationClass"类型的 COM 对象转换为“microsoft.Office.Interop.Excel.Application"

这是我第一次尝试从一个 C# 控制台应用程序中的 excel 中捕获一些数据. 我收到错误“无法将类型为‘microsoft.Office.Interop.Excel.ApplicationClass’的 COM 对象转换为‘microsoft.Office.Interop.Excel.Application’". 此代码使用了“Microsoft Excel 12.0 对象库",我参 ..
发布时间:2021-12-02 22:36:25 C#/.NET

使用 IDisposable 清理 Excel 互操作对象

在我公司,发布 Excel Interop Objects 的常用方法是使用 IDisposable 的方式如下: Public Sub Dispose() 实现 IDisposable.Dispose如果没有 bolDisposed 那么完成()System.GC.SuppressFinalize(Me)万一结束子受保护的覆盖 Sub Finalize()_xlApp = 没有bolDispo ..
发布时间:2021-12-02 13:12:25 C#/.NET

如何正确清理 Excel 互操作对象?

我在 C# (ApplicationClass) 中使用 Excel 互操作,并将以下代码放在我的 finally 子句中: while (System.Runtime.InteropServices.Marshal.ReleaseComObject(excelSheet) != 0) { }excelSheet = 空;GC.Collect();GC.WaitForPendingFinaliz ..
发布时间:2021-12-01 08:56:20 C#/.NET

我究竟如何配置 DCOM 以将我的 DLL 加载到单独的进程中?

我正在尝试将现有的本机 C++ ATL 进程内 COM 服务器强制转换为单独的进程.我希望DCOM可以在不改变COM服务器的情况下为我做到这一点. 我从通常的注册表设置开始 - 我有一个 HKCR\CLSID{classId} 条目和一个 InProcServer32 键,用于指定 .dll 文件的路径. 我生成了一个应用程序 ID (GUID) 并随处添加了它.具体来说,我在 HKC ..
发布时间:2021-11-30 14:11:00 其他开发

COM Interop 的泛型集合有哪些替代方案?

我试图从 .NET 程序集中返回一组部门,以便 ASP 通过 COM Interop 使用.使用 .NET 我只会返回一个通用集合,例如List,但泛型似乎不适用于 COM Interop.那么,我有哪些选择? 我想遍历列表并能够通过索引访问项目.我应该从 List 继承,实现 IList、IList 或其他接口,还是有更好的方法?理想情况下,我不想为我需要的每种类型的列表实现自定义集合.另 ..
发布时间:2021-11-29 09:17:26 C#/.NET

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

我使用 C#.NET 开发了一个 Windows 服务来生成 PDF 报告.要生成 PDF 文件,我使用了第三方 dll.该应用程序在我的 Windows XP 平台上运行.当我在 Windows Server 2008 64 位版本中部署服务时,出现以下错误: 检索 COM 类工厂带有 CLSID 的组件{46521B1F-0A5B-4871-A4C2-FD5C9276F4C6}由于以下错 ..
发布时间:2021-11-26 14:32:52 C#/.NET

创建 COM 互操作类的实例

我正在尝试使用 C# 从我的程序中打开 CorelDRAW.到目前为止,我已经能够通过引用适当的 com 库并调用 CorelDRAW.Application draw = new CorelDRAW.Application();draw.Visible = true; 但是,我希望我的程序能够与支持互操作的任何版本的 CorelDRAW 一起使用.我正在尝试使用反射在运行时加载互操作库,其中 ..
发布时间:2021-11-26 12:19:57 C#/.NET

使用 4.0 框架和 Visual Studio 2010 为 ASP Classic 构建 COM 互操作库

在浏览了许多不同的文章后,没有找到任何特别能引导我逐步完成整个过程的结论,我来寻求帮助. 场景 我的一个客户只精通 ASP Classic 的开发.他们最近获得了一个最初用 ASP.NET 编写的站点的帐户.他们正在将站点转变成他们可以积极维护的东西,但该站点最初包含一个图像处理程序,该处理程序获取有关水位的动态变化数据并输出包含该数据的图形表示的图像.要求是开发一个 COM 互操作库 ..
发布时间:2021-11-26 10:44:18 C#/.NET

对 x64 com 互操作封送问题进行故障排除

我有一个 C++ COM 服务器,我最近将它重新编译为 64 位.此 COM 服务器有一个方法,该方法包含一个结构参数,该参数包含一些整数和一个 BSTR 以及另一个结构.现在,我试图从 64 位 .Net C# 应用程序调用这个 COM 服务器.只要我不尝试填充任何字符串参数,我就可以成功加载我的 COM 服务器并调用此方法.如果我尝试在 int 成员中传递有效值,则它们最终会在 COM 对象实 ..
发布时间:2021-11-25 06:38:29 C#

64 位 COM dll 和 C#/.Net 应用程序之间的免注册互操作

我正在尝试在 64 位 COM dll 和 C# 应用程序之间实现免注册的 COM 互操作. 在上一个问题的答案中我的,我得到了帮助,使我能够在 C# 的 64 位 COM dll 上成功调用 HelloWorld 方法. 然而,这只能通过使用 regsrv32.exe 全局注册 COM dll 来实现. 基于这个答案对一个相关问题,我认为我需要在参考上设置隔离标志COM dll ..
发布时间:2021-11-25 06:12:42 C#

0x80040154 的 COMException 总是“类未注册"吗?

0x80040154 的 System.Runtime.InteropServices.COMException 是否总是意味着该类未注册?我收到一个 COMException,它说“由于以下错误,检索具有 CLSID {29131539-2EED-1069-BF5D-00DD011186B7} 的组件的 COM 类工厂失败:80040154."它正在尝试加载 Interop.Domino.dll ..
发布时间:2021-11-25 06:01:57 C#

在 64 位环境中使用 32 位 COM 对象

下面的代码在 32 位 c# 应用程序中执行没有问题. object obj = system.Runtime.InteropServices.Marshal.GetActiveObject("Due.Application");var Due = (Due.IDueApplication2)obj; 现在,我尝试在 64 位 c# 应用程序中使用相同的代码,因此我按照 中的说明进行操作 ..
发布时间:2021-11-25 00:31:01 C#

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

我使用 C#.NET 开发了一个 Windows 服务来生成 PDF 报告.要生成 PDF 文件,我使用了第三方 dll.该应用程序在我的 Windows XP 平台上运行.当我在 Windows Server 2008 64 位版本中部署该服务时,出现以下错误: 检索 COM 类工厂带有 CLSID 的组件{46521B1F-0A5B-4871-A4C2-FD5C9276F4C6}由于以下 ..
发布时间:2021-11-24 23:21:04 C#

使用 .NET Core 在 Mac OSX 上的 Office (Excel) COM 互操作?

我为一个团队工作,该团队目前专门在 C#/.NET 中创建 Windows 桌面应用程序,这些应用程序通过 Office COM Interop 与 Microsoft Excel 的本地用户实例交互.我目前负责指定新产品,但有人告诉我,除非该应用程序可以在 Mac 和 Windows 上运行,否则该项目不会继续进行——也就是说,我们必须能够生成该应用程序的 Mac 版本可以在 OSX 上本地安装 ..
发布时间:2021-11-24 17:53:30 C#

创建 COM 互操作类的实例

我正在尝试使用 C# 从我的程序中打开 CorelDRAW.到目前为止,我已经能够通过引用适当的 com 库并调用 CorelDRAW.Application draw = new CorelDRAW.Application();draw.Visible = true; 但是,我希望我的程序能够与支持互操作的任何版本的 CorelDRAW 一起使用.我正在尝试使用反射在运行时加载互操作库,其中 ..
发布时间:2021-11-24 11:40:23 C#

如何正确地将 VB-Script 数组与用 C# 编写的 COM 组件进行编组

我正在用 C# (.Net 4.0) 构建一个 COM 对象,用于经典的 asp 站点.现在我想知道在组件和 asp 站点之间来回编组 VB-Script 数组(单维和多维)的正确方法是什么?代码示例将不胜感激. 解决方案 VBScript 只喜欢处理包含 VARIANTS 的 SAFEARRAY.它喜欢在 COM 方法或属性的 VARIANTS 中传递这些信息.因此,您需要构造一个包含 ..
发布时间:2021-11-18 03:00:42 其他开发

COM 互操作是否尊重 .NET AppDomain 边界以加载程序集?

这是核心问题:我有一个 .NET 应用程序,它使用 COM interop单独的应用程序域.COM 内容似乎正在将程序集加载回默认域,而不是从中调用 COM 内容的 AppDomain. 我想知道的是:这是预期的行为,还是我做错了什么导致这些与 COM 相关的程序集加载到错误的 AppDomain 中?请参阅下面更详细的情况描述... 该应用程序由 3 个程序集组成:- 主 EXE,应 ..
发布时间:2021-11-16 19:10:26 其他开发