com-interop相关内容

“内存泄漏"剖析

在 .NET 中: 什么是内存泄漏? 如何确定您的应用程序是否泄漏?有什么影响? 如何防止内存泄漏? 如果您的应用程序存在内存泄漏,它会在进程退出或被终止时消失吗?或者即使在进程完成后,您的应用程序中的内存泄漏是否会影响系统上的其他进程? 那么通过 COM Interop 和/或 P/Invoke 访问的非托管代码呢? 解决方案 我见过的最好的解释是在免费的 编程基础电子书. ..
发布时间:2021-12-30 23:41:59 C#/.NET

无需重新加气的 COM 互操作

我是一个受限用户,我需要编写一个 Outlook 宏来公开 Outlook 2003 和 2007 中的 C# 库. 我根本没有任何管理员权限,甚至在安装时也没有,所以我无法运行 RegAsm,也无法(我假设)编写托管加载项. 在这种情况下,有没有办法从 VBA 调用 .Net 代码,或者有其他解决方案吗? 这仅供个人使用,所以丑陋的黑客是完全可以接受的(只要它有效) 解决 ..
发布时间:2021-12-30 09:51:57 C#/.NET

由非托管应用托管的托管组件中的 Await 和 SynchronizationContext

[编辑]这似乎是框架实现中的一个错误Application.DoEvents,我'已报告这里.在 UI 线程上恢复错误的同步上下文可能会严重影响像我这样的组件开发人员.赏金的目标是让更多人关注这个问题,并奖励@MattSmith,他的回答有助于追踪问题. 我负责通过 COM 互操作将基于 .NET WinForms UserControl 的组件作为 ActiveX 公开给遗留的非托管应用. ..
发布时间:2021-12-14 20:43:56 C#/.NET

什么是“注册 COM Interop"?其实呢?

VS 项目选项“注册 COM 互操作"究竟有什么作用?因为当我在启用此选项的情况下构建我的库时,我可以从 VBScript 调用我的库上的 CreateObject.但是如果我在没有这个的情况下构建然后手动运行 regasm CreateObject 失败.所以我想知道 - VS2010 做了哪些我没有做的事情? 解决方案 它与使用 /tlb 和 /codebase 选项运行 Regasm ..
发布时间:2021-12-14 18:58:23 其他开发

以编程方式注册 C#/VB.NET COM dll

问题:我有一个从 C++ 程序中使用的 .NET dll.现在我必须在部署计算机上以编程方式注册 dll. 我该怎么做(以编程方式!不使用 regasm)?我记得,当我从 C++ dll 中调用 VB6 dll 时,我不得不使用 DllRegisterServer 和 DllUnregisterServer. .NET dll 仍然如此吗? 看来我必须以某种方式将 dllregist ..
发布时间:2021-12-06 11:00:06 C#/.NET

在 .NET 中为互操作公开属性作为变体

我正在 .NET 中创建一个包装类(实际上是 VB.NET,但与 C# 同样相关),该包装类暴露给 COM,我试图包装的属性之一是 Variant.我以为我只能使用对象,但出现错误: 公共属性 FieldValue([vFieldID As Object = -1]) As Object 不能作为属性“Let"公开给 COM.您将无法使用“Let"语句从 Visual Basic 6.0 将 ..
发布时间:2021-12-06 10:28:01 C#/.NET

在实时(未保存)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

如何正确清理 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#/.NET