我在Visual Studio中引用了一个COM库,所以它自动为我创建了相应的Interop程序集。我想对这些COM对象执行GetType(),但它们总是返回System.__ComObject。不过,通过查询它们的接口可以正常工作:bool isOfType = someComeObject...
我想知道从一个打开的Excel工作簿读取和写入数据到C#对象的最快方法是什么。背景是我想开发一个C#应用程序,该应用程序从Excel中使用数据,用户将在Excel中使用该应用程序并单击Excel工作簿上的按钮(或执行类似操作)来启动C#应用程序。 C#应用程序将从Excel工作簿读取数据,处理...
我是一个普通用户,需要编写一个Outlook宏,可以在Outlook 2003和2007中使用C#库。 我没有任何管理员权限,甚至在安装时也没有这些权限,因此我无法运行RegAsm,也不能(我猜)编写托管插件。 在这种情况下,是否有办法从VBA调用.NET代码,或是否有其他解决方案? 这...
我已经重新表述了这个问题。 当通过COM互操作将.NET对象暴露给COM客户端时,会创建一个CCW(COM可调用包装),它位于COM客户端和托管的.NET对象之间。 在COM世界中,对象保留其他对象对其的引用计数。当该引用计数降为零时,对象被删除/释放/收集。这意味着COM对象终止是确定性...
我怎样才能通过COM4J从C#方法返回一个实现了COM接口的对象数组给Java方法呢? 生成数组的C#示例类:using System; using System.Runtime.InteropServices; namespace Example { [ComVisible(t...
我正在构建我的 Visual Studio 解决方案,在输出窗口中只有一个项目出现了错误。 在错误选项卡中:Error 161 Cannot register type library "D:\Sites\Website\MyPortal.Website.Controllers...
手动注册托管类以供 COM 互操作时,需要某些注册表键。例如:HKEY_CLASSES_ROOT CLSID\[My Cls Id] InprocServer32 (Default) = "mscoree.dll" Assembly = [My assembly...
我们正在开发一个引用了一些COM库(例如AutoIT)的C#应用程序。 我将所有引用的组件都包含在第三方“Libs”文件夹下,并纳入源代码控制中。 问题是,在.csproj文件中,COM dll没有HintPath属性,我认为这些必须手动使用regsvr32进行注册(或使用某种脚本)。 ...
[编辑] 这似乎是框架实现中Application.DoEvents的一个错误,我已在此处报告了这个问题。 在UI线程上恢复错误的同步上下文可能会严重影响像我这样的组件开发人员。悬赏的目的是引起更多关注这个问题,并奖励 @MattSmith ,他的答案帮助我们跟踪到了这个问题。 我负责一个基...
我正尝试整理我们在各个项目中散布着的COM互操作定义,并将它们收集到一个单一的、确定无误的位置,以便整个开发团队可以从中受益。这一努力的一部分涉及清理多年积累的定义。 其中一些是从其他源代码借用来的,有些是直接从pinvoke.net复制而来的,还有一些看起来是直接从SDK头文件翻译过来的。...