20得票10回答
能否拦截(或知道)暴露给COM的CLR对象的COM引用计数?

我已经重新表述了这个问题。 当通过COM互操作将.NET对象暴露给COM客户端时,会创建一个CCW(COM可调用包装),它位于COM客户端和托管的.NET对象之间。 在COM世界中,对象保留其他对象对其的引用计数。当该引用计数降为零时,对象被删除/释放/收集。这意味着COM对象终止是确定性...

11得票4回答
COM互操作的通用集合的替代方案是什么?

我正在尝试从一个.NET程序集返回一个部门集合,以便通过COM互操作被ASP使用。在.NET中,我会返回一个泛型集合,例如List<Department>,但似乎泛型与COM互操作不兼容。那么我的选择是什么? 我想要遍历列表并能够按索引访问项目。我应该继承List<Depa...

11得票7回答
C# Excel互操作,在Excel单元格文本中插入换行符

我正在使用interop编写Excel表格。在表格中,我需要将一组句子放入一个单元格中,并且这些文本需要按照换行的方式呈现。我该如何实现这个目标? 提前感谢您的帮助。

7得票1回答
如何从C#调用COM对象

首先,我意识到这里有很多帖子都讨论了这个问题。我肯定已经阅读了超过20篇,但它们都没有给出我需要的答案。 我编写了一个微小的C#测试COM DLL,其中只有一个方法,在消息框中打印“我活着了!”。使用管理员身份运行VStudio,我可以构建和注册COM对象。我已成功从VBA调用该对象并运行该...

8得票4回答
Excel互操作加载XLL和DLL文件

我有一份使用Bloomberg API的Excel文件(使用类似于=BDP("MS equity","ask")的简单调用)。我还有一个C#应用程序,通过interop打开一个使用Bloomberg API的Excel文件。我在这里读到了插件在通过interop加载Excel时不会被加载的信息...

7得票2回答
如何在不使用RegAsm.exe的情况下注册类型库

我想知道是否可以不使用RegAsm工具来注册类型库。以下是我的情况,希望能解释清楚为什么我要这样做: 我正在开发一个.NET程序集,将为我们旧的VB6应用程序提供一些现代功能。我已经成功地在我的开发机上使用RegAsm注册了程序集和类型库: regasm.exe MyAssembly.dl...

7得票1回答
在Mac OSX上使用.NET Core进行Office(Excel)COM互操作?

我在一家团队工作,目前专注于使用C#/.NET创建Windows桌面应用程序,通过Office COM Interop与本地用户的Microsoft Excel实例进行交互。我现在负责指定一个新产品,但被告知,如果该应用程序无法在Mac和Windows上运行,该项目将无法继续进行,也就是说,我...

12得票1回答
我该在.NET应用程序中部署Interop.x.dll文件吗?

我们有一个.NET应用程序,它使用不同DLL中的COM对象,这些DLL也在我们应用程序的VB6部分中使用。当引用COM库时,Visual Studio 2012会创建一个Interop.x.DLL并引用它。我应该从构建机器上分发Interop.x.DLL还是使用某个.NET命令行工具重新生成它...

7得票2回答
从VB6传递字符串数组到C#.net

如何通过COM互操作将VB6字符串数组 [假设为s =Array("a", "b", "c", "d")] 传递给C# .Net?我尝试了实现将C#字符串数组传递给VB和将VB字符串数组传递给C#,如下所示:C#->VB正常工作,但另一种方式(VB-> C#)会出现编译错误,错误信息是:“函数...

7得票1回答
将C#对象按值传递给COM

我正在尝试使用从C#访问COM接口,该接口由tlbimp生成并公开以下接口: [Guid("7DDCEDF4-3B78-460E-BB34-C7496FD3CD56")] [TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FNonE...