com-interop相关内容
premise: 在写C#编写的一个COM,调用包装(CCW)由VB6 code调用。 的C#code有.NET库(第三方),它必须使用。 的包裹C#类实例化精,妥善引发事件,采取的方法调用正常。 问题: 在VB6的code,运行C#code时,得到当C#code尝试访问额外的.NET库上面提到的错误。 流程进行测试: 在C#裹code完成。 在VB6 code写的,引用创建的COM D
..
我需要传递键/值对字符串的集合从VB6到.NET。在VB6 code它们存在于本地集合。但我不知道我可以在我的.NET项目引用要能接受我的方法之一类型集合的参数。 我尝试添加引用Visual Basic应用程序,但回来“一提到'Visual Basic应用程序”不能添加。“ 我要对错误的方式? 解决方案 您可以使用这样的事情在C#: [的Guid(“fb5e929a-2f8b-481e
..
的考虑下面的C#类 AuthenticateHelper ,它实现COM IAuthenticate进行的: [ComImport] [的Guid(“79eac9d0-baf9-11ce-8c82-00aa004ba90b”)] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown) 公共接口IAuthenticate进行 { [pre
..
我使用的Microsoft Office互操作字来生成使用C#文件。为了使文档生成工作,应为“Microsoft Office Word中97 - 2003文档”中的条目的 DCOM配置设置下,如下所示: 在本地路径在常规选项卡有一个正确的路径是先安装了Microsoft Office时。如果我再将计算机加入到域,然后重新启动系统,域用户,在本地路径变成空白,应用程序不会生成的文件,并给
..
我需要通过变体的空数组以C语言编写的(和适用于所有Windows版本)一个DLL,而C code(这是我无法控制的,不能编辑)将填充空数组变体,其某些函数的返回值。 Bascially,当我尝试这 - 的ByRef的数组总是空的,当它应该包含函数/子调用的结果(如果我在.NET中完全一样的东西,它的工作原理) 我想我需要做一个自定义的声明,使VB知道如何调用C函数,或? 下面是如何在c子/函
..
试图创建一个映射器为微软Office对象到POCO的,发现这个 //不起作用 //返回一个空数组,其中0是RCW办公室对象 的foreach(VAR PI在o.GetType()。GetProperties中()) tgt.SetValue(RC,pi.GetValue(0,NULL)); 因此不得不求助于此 {的foreach(在tgt.GetFields()VAR场
..
您可以使用通过COM-互操作在VBScript .NET方法。你必须追加一定的后缀数字的方法,因为重载不交叉的托管/非托管边界。后缀数字似乎不具有特定的顺序...如何确定后缀数字? 例如: 昏暗的编码,bytesthroughdotnet 集编码=的CreateObject(“System.Text.UTF8Encoding”) bytesthroughdotnet = encodin
..
我需要创建一个COM对象为我传统的ASP,因为我可以创建一个.NET程序集,并把它“互操作”与COM,所以我着手创建.NET程序集是这样的: - 使用系统; 使用System.Collections.Generic; 使用了System.Runtime.InteropServices; 使用System.Linq的; 使用System.Text; 使用System.Data.SqlClient的
..
我想知道是否有可能以注册类型库,而无需使用的 RegAsm工具。这里是我的情况,希望这将解释为什么我想这样做: 我正在开发的.NET程序集,将提供一些现代的功能,为旧的VB6应用程序。我已经成功注册了组装和使用RegAsm像这样在我的开发机器的类型库: regasm.exe MyAssembly.dll程序/ TLB / codeBase的 上面的命令生成的类型库(MyAssembl
..
我有这样的COM方法的签名,在C#中声明: 无效下一页(REF INT PCCH, [的MarshalAs(UnmanagedType.LPArray,SizeParamIndex = 0)] 的char [] pchText); 我把它称为是这样的: INT CCH = 100; VAR的buff =新的char [CCH] com.Next
..
是否有可能在.NET对象调用静态方法,通过COM互操作? 我知道我可以写一个包装类。如果我不想做呢? 解决方案 没有你不能做到这一点。 COM互操作,通过对象,而不是类型的通信。 工作变通我知道... 最好的解决方法是创建一个包装方法上的一个实例做的类型呼叫。是的,这仍然需要一个实例,因此它违背了目的,但它就是你最好的选择。 反向PInvoke的:仍然需要你下来传递一个函数指针C ++层
..
我有一个exe文件我已经给它有COM类里面 - 这是从C ++,没有.NET 标记有ComVisible特性类型 我想使用这些类我的.NET项目里面,但我不能添加引用exe文件;当我尝试,我得到 对话框: --------------------------- 微软的Visual Studio --------------------------- 一提到“C:\ Program Files
..
一个奇怪的问题了一下,大概落后的大多数人想做的事,但我试图解决一个传统的COM问题。 我有两个组成部分,这两者都是实际上.NET组件,但由于历史的原因之一加载其他作为COM对象(该组件注册为COM互操作)。这是一个插件架构,其中插件是由它的COM进程id识别,所以这是唯一的一条信息,我得到加载插件组装。 一种方法我试过是: VAR OBJTYPE = Type.GetTypeFromPro
..
我目前工作的一个混合的本机/托管应用程序链,它采用免注册的COM。下图说明了这一点: C#的包装DLL已经使用tlbimp.exe是实用程序创建的。这允许每个C#的可执行文件来访问本地类型和方法在COM的DLL。在COM DLL本身采用基于服务器的RegFree COM清单。 一切工作正常,当基于客户端RegFree COM体现嵌入在C#中的可执行文件。不过,我想移动和统一这些清单文件到C
..
我使用COM互操作从.NET编写一个Excel加载项。我有一个弹出一个对话框的命令,然后从对话框我喜欢从多张的使用范围收集数据的一些工作。现在的问题是,如果一个单元是在编辑模式下,一些我需要做会抛出异常的话费。我想前手的Excel在编辑模式决定的方式,让我可以提醒用户完成第一个编辑单元格。 任何想法? 解决方案 有一个Application.Ready属性,应该给你这个信息,但在实践中并不可
..
我公开为 CCW (COM可调用包装),并加载到一个非托管的IIS应用程序(ATL服务器).NET组件。该组件安装并使用COM注册 regasm / codeBase的。 组件需要配置,如通常放入Web.config文件中的IIS应用程序。但我不想砸配置成要么w3pw.exe.config或machine.config中 - 在理想情况下,我想将配置现场的旁边安装暴露于COM大会 我还没有找到
..
背景 我通过自动化命令行工具,一些Office应用程序(Word和PowerPoint)。 我想我的工具需要做的就是找到Word的所有正在运行的实例。 我知道如何让一个参考实例之一... 对象running_obj = NULL; { running_obj = System.Runtime.InteropServices.Marshal.GetActiveObject(进程i
..
有谁知道它如何可能看到COM /互操作适当的对象(在他们正确的类型)在VisualStudio中的调试器?我得到的是“恶的系统.__ ComObject 值(即使它正确地识别型)? 例如: 解决方案 所以,这不是一个答案,但检查出这两个屏幕截图。这是从同一个应用程序,只是在两个不同的中断点。在两种情况下,COM对象是从相同的COM / AX库。我不知道为什么在一个情况下,我看到“系统._
..
我有一个类: 大众A级 { 公共委托无效SetTextDel(字符串值); 公共无效测试() { SetTextDel的setText = someInterface.SetText; icom.Set(的setText); } } [标记有ComVisible特性(真),的Guid(“81C99F84-AA95-41A5-868E-62FAC8FAC263”),Int
..
我想看看我是否能够建立在C#(.NET 4),我可以使用从VB5程序(线索嘲笑的话)来访问Web服务的COM组件。随着所有的指示,我已经能够找到MSDN和$ C $的CProject如下: 大厦COM在C#对象 示例COM类(C#编程指南) 我写了下面的: [的Guid(“7A715F02-D349-45DC-B0AE-9925FD3B943C”)] 公共接口ARCOM_Interface
..