com-interop相关内容

需要ClassInterfaceType.None的?

没有完全得到下面的 ClassInterfaceType.None 表示没有类的接口 为类生成。如果不 接口被明确地实施, 类只能提供后期绑定 通过访问的IDispatch 接口。这是推荐的 设置 ClassInterfaceAttribute 。 使用 ClassInterfaceType.None 是 只有揭露功能的方法 通过实现的接口 明确地由类 是 [标记有​​ComVisible特 ..
发布时间:2015-11-25 14:40:51 C#/.NET

TLB到托管的.NET程序集,而不Regsrv32在部署时

我是作为一个第三方API的一部分,一个TLB。我用Tlbimp.exe生成一个DLL组件wrappper。然而,在开发时,看来该组件需要注册与待使用REGSVR32 这是不是然而,开发时间的问题;我使用管理的实例在生产和注册DLL手动将是一个痛苦,如果不是不可能的,当我部署。有没有一种方法使用托管的DLL组件,不需要在部署过程中的注册步骤的方式? 我一直在读围绕互联网,发现在免注册COM的一些 ..
发布时间:2015-11-25 14:34:33 C#/.NET

通过字符的缓冲,从.NET到COM和拿回来更新

我已经从C#,它返回一个字符串,在提供的缓冲区叫下面的COM方法 pchText (即不可以必然为零终止)和 PCCH 复制的字符的数目: HRESULT下一页([IN,OUT]长* PCCH,[出,size_is(* PCCH)] OLECHAR * pchText); 我如何定义的C#签名互操作? 到目前为止,我想这样的: 无效下一页(REF INT PCCH, [的 ..
发布时间:2015-11-25 14:25:03 C#/.NET

HRESULT:0x80010105(RPC_E_SERVERFAULT)问题

有关我公司,我创建了一个使用第三方支付prcoessing引擎授权的信用卡交易中的ASP.NET Web服务。 Web服务托管在一个单独的应用程序服务器上,并通过ActiveX对象(扩展名为.ocx)连接到支付处理服务器。最近,它已经产生HR​​ESULT:0x80010105(RPC_E_SERVERFAULT)异常,当我尝试建立使用“IsAvaiable”检查应用程序的连接 有谁推荐一个很 ..
发布时间:2015-11-25 14:01:00 C#/.NET

我注册.NET程序集实现COM互操作性不公开我的方法

好了,我要疯了。我一直试图做一个简单的.NET程序集可视作为COM对象使用,但它不工作。我一直在尝试不同的aproaches,但他们没有工作。迄今为止最接近我所得到的是一个用最少的属性,接口,手动注册等。 我有一个VBScript作为测试,看起来是这样的: 暗淡Ø O =的CreateObject(“MyNamespace.MyClass”) MSGBOX o.Test() 我的C#c ..
发布时间:2015-11-25 13:38:47 C#/.NET

什么是.NET4新不软功能的优点[部署PIA的]

它可能我只是失去了一些东西,但是,当我写了一些code为Excel互操作,在这里是怎么一回事。 在我的引用添加到Excel的COM库。 VS创建一个PIA - (?通过TLBIMP右)的Microsoft.Office.Interop.Excel .... 我的EXE和互操作(PIA)DLL复制到任何一台机器(使用.NET)和它的作品? 有这样一个场景,我将不得不部署/注册PIA?还是有我有什 ..
发布时间:2015-11-25 13:37:07 C#/.NET

为什么不办公PIA正确安装到GAC?

我目前工作的一个C#项目,我需要访问Outlook。的开发正在做在两个不同的机器上,其中的一个已安装的办公室,以及其中一个没有。我$p$pviously问如何编译我的项目对前景COM对象,以及评论的一个建议,我对编制办公室主互操作程序集或PIA。在我下载的 MSIEXEC /我o2007pia.msi 在提示符下,在Windows安装程序启动,与显示“请稍候Windows配置Microsoft ..
发布时间:2015-11-25 13:11:34 C#/.NET

建立一个DLL为免注册COM互操作使用C#/管理code

我是新来的COM和必须创建一个COM包装为一个C ++ DLL,做一些功能,在它管理code访问。我主要是跟着这教程code项目创建一个COM ATL DLL。我创建了一个生成后步骤调用tlbimp.exe是对COM DLL创建的包装。 添加引用,tlbimp.exe是创建工作的DLL,我也得到code完成了对我的COM DLL的方法,并可以编译使用该DLL管理code。然而,运行code会导致 ..
发布时间:2015-11-24 22:44:03 C#/.NET

.NET和COM互操作性:从.NET客户端版本COM

假设我有一个COM对象(非托管)和.NET客户端。 是否有必要从.NET客户端 Marshal.FinalReleaseComObject 方法以释放COM对象调用? 解决方案 A 修改的“是”和“否”。 首先,请记住, ReleaseComObject的的不的自动降低实际COM对象参考计数。相反,它降低了内部的RCW计数。 (每次的一样的COM对象从COM-移动> NET它将使用的一样的 ..
发布时间:2015-11-24 22:30:45 C#/.NET

使用COM互操作时,.NET数据库调用速度慢,通过查询分析器快

我有一个SQL查询查找基于SSN的人,并返回PERSONID(标识列)。有论者表中的SSN列的索引。 我有一个使用的COM / .NET互操作调用此查询旧的VB 6应用程序。当它运行速度相对较慢。我成立了一个跟踪使用SQL事件探查器,每个呼叫有400毫秒,600毫秒之间的持续时间。 如果我运行通过查询分析器非常相同的查询,我得到一个持续时间LT; 30毫秒。我也有一个ASP.NET web站点 ..
发布时间:2015-11-24 21:56:03 C#/.NET

使用C#相同的COM接口,2个不同的库之间的转换

我有一对都使用相同的COM接口库。在一个图书馆中,我有一个实现该接口的类。其他库需要一个对象来实现该接口。 不过这两个库都有自己的接口定义。两个略有不同,但基本上是相同的接口 于是,我试着在他们之间区分如下: Library2.Interface INTF =(Library2.Interface)实现了一套; 不过这引起了作为一个例外。如果我做了以下内容: Library1. ..
发布时间:2015-11-24 21:34:38 C#/.NET

如何使使.NET.COM对象进行单元线程?

.NET对象是自由线程默认情况下。如果封通过COM另一个线程,他们总是得到封给自己,而不管创造者线程是否是STA与否,也不管他们的的ThreadingModel 注册表值。我怀疑,他们聚集自由线程封送(约COM线程的详细信息,可以发现的我想让我的.NET COM对象使用标准的COM代理编组时封送到另一个线程。问题: 使用系统; 使用了System.Runtime.InteropServices; ..
发布时间:2015-11-24 21:28:28 C#/.NET

是否有可能拦截(或知道)暴露于COM CLR对象COM引用计数

我已经改写了这个问题。的 在.NET对象通过COM iterop暴露在COM客户端,CCW(的 COM可调用包装)创建,该坐的COM客户端和管理的.NET对象之间。 在COM环境,对象保持其他对象得它引用的数目的计数。对象被删除/释放/收集时引用计数为零。这意味着,COM对象的终止是确定的(我们使用使用/ IDispose在.NET中的确定性终止,终结对象是不确定性的)。 每个CCW是一个C ..
发布时间:2015-11-24 20:46:22 C#/.NET

如何优雅地prevent暴露给COM一个web服务代理?

我有一个,我作为非托管C ++应用程序消耗的进程内COM服务器使用C#程序集。该组件消耗的永远不会改变,因此没有必要不断更新Web服务代理类web服务。这就是为什么代理类创建donce和 Reference.cs 文件简单地把到库中,并从那里只有编译。 问题是,默认情况下,Web服务代理类是公共的,因此暴露在COM。这种膨胀的类型库,污染注册表。更改可视性内部破组装,因此这些实体需要保持公开,但 ..
发布时间:2015-11-24 20:33:35 C#/.NET

等待和的SynchronizationContext在非托管的应用程序托管的托管组件

[EDITED] 这似乎是在框架的实现中的错误 Application.DoEvents 中,我'已经报道我负责一个.NET的WinForms 用户控件暴露的ActiveX为遗留的非托管的应用程序系成分,通过COM互操作。运行时的要求是.NET 4.0 + Microsoft.Bcl.Async。 该组件被实例化,以及应用程序的主STA UI线程上使用。它的实现利用异步/计谋,因此预计,串行化同 ..
发布时间:2015-11-24 20:15:08 C#/.NET

WebBrowserSite:如何调用在派生类中的私人COM接口方法?

下面是一个挑战。我是从框架的到目前为止,我已经成功地覆盖的IDocHostUIHandler 在我的 ImprovedWebBrowserSite 实现(像的 所以,问题是,我该如何调用 WebBrowserSite 定义的私有或内部COM接口的方法,从我的派生类?例如,我要打电话 IOleClientSite.GetContainer 。我可以使用反射(如这),但是这将是最后的手段,二来重新实施 ..
发布时间:2015-11-24 20:14:35 C#/.NET

无法通过跨AppDomain的一个的GCHandle:解决方案,而代表?

我在C碱基++库和客户端应用程序是在C#。有C ++ / CLI界面,从C#访问C ++ API的。每一件事情正常工作,直到多个应用程序域没有接触到类似的NUnit或WCF托管,即一个应用程序域的发挥。 在 我已存储的管理对象的 gcroot 在CLI回调。我已阅读,这是应用程序域问题的根本原因(“无法通过跨AppDomain的一个的GCHandle”),因为他们没有应用程序域信息(的 http ..
发布时间:2015-11-24 20:08:19 C#/.NET

"注册为COM互操作" VS"使组装COM可见的QUOT;

这两个选项之间的真正区别是什么?我所知道的是: 注册为COM互操作 此选项执行regasm的组装和注册组件,在注册表中所有的COM像注册表项的COM组件(也可能不是)。 这是否步骤生成一个TLB文件?还有什么做? 有时候,我看到当我编译项目中的TLB的产生,但有时没有,这是为什么? 请组件COM可见 这是否一个具有装配上什么样的影响?如果我有以下类型此组件内,我还需要指定“使组装COM可 ..
发布时间:2015-11-24 15:54:11 C#/.NET