com-interop相关内容

将C ++ string / wchar_t *转换为C#string?

问题:我需要从C ++可执行文件调用C#dll。 我使用COM,它适用于int,long和bool。但我不能得到一个字符串... IDL文件说它是一个BSTR,但我不能正确传递,也不检索一个。 我试着使用wchar_t *和使用sysalloc像我做VB6,但是似乎不工作。 任何人都知道如何,或什么可能错误? 解决方案 如果您使用的是ATL,您可以这样做: std ..
发布时间:2016-10-25 13:46:24 C#/.NET

排除x64 com互操作编组问题

我有一个C + + COM服务器,我最近重新编译为64位。这个COM服务器有一个方法,它包含一个struct参数,该参数包含一些int和一个BSTR和另一个结构。现在,我试图从一个64位.Net C#应用程序调用此COM服务器。我可以成功加载我的COM服务器,并调用此方法,只要我不尝试填充任何字符串参数。如果我尝试在int成员中传递有效的值,它们最终在COM对象实现结束的时候损坏。看起来好像结构被 ..
发布时间:2016-10-23 21:28:14 C#/.NET

排除x64 com互操作编组问题

我有一个C + + COM服务器,我最近重新编译为64位。这个COM服务器有一个方法,它包含一个struct参数,该参数包含一些int和一个BSTR和另一个结构。现在,我试图从一个64位.Net C#应用程序调用此COM服务器。我可以成功加载我的COM服务器,并调用此方法,只要我不尝试填充任何字符串参数。如果我尝试在int成员中传递有效的值,它们最终在COM对象实现结束的时候损坏。看起来好像结构被 ..
发布时间:2016-10-23 21:20:24 C#/.NET

C#COM dll在C ++项目中有REGDB_E_CLASSNOTREG错误

我有一个C#dll,我已正确注册COM互操作,并使COM可见。使用cppbuilder,我导入了类型库,它生成了包装类,我现在尝试使用创建我的C#类的实例。但是,我得到一个REGDB_E_CLASSNOTREG错误在我的C ++代码。我验证了dll是在注册表中,甚至重新注册它与regasm。不用找了。 这是我的C ++代码: _MyClassPtr obj; HRESULT hr ..
发布时间:2016-10-11 11:45:27 C/C++开发

"拒绝访问"注册表项;建立一个.NET的DLL为COM互操作时,

目标:打造的与COM互操作,以通过在另一个环境德尔福被称为C#DLL 问题:Windows正在阻止我。建,说我没有权限编辑注册表 上下文: 我使用Windows 8时,Visual Studio 2012,UAC被关闭。 我使用RGiesecke的DLLEXPORT与注释[DLLEXPORT] 我要导出为DLL中的方法。 我用 [标记有ComVisible特性(真)] 的建议 ..
发布时间:2016-10-10 19:43:40 C#/.NET

可以元帅字符串[]对SAFEARRAY变种?

当我我的元帅函数返回一个的String [] 为 UnmanagedType.Struct 与 SafeArraySubType = VarEnum.VT_ARRAY 在 命名空间计算器 { [标记有ComVisible特性(真)] [的Guid(“4BDC43D4-8FD7-4F58-BEE5-E57C3C144C1B”)] 公共类数组 { [返回:的MarshalAs(Un ..
发布时间:2016-10-10 19:08:01 C#/.NET

尝试使用C#中的新IFileDialog和IFileOpenDialog接口,用最少的代码打开一个文件对话框

我想显示一个标准的打开文件对话框,可以选择文件夹,使用C#中的IFileOpenDialog接口,Visual Studio 2010中。 我试着使用最少的代码,所以我只确定我需要在界面的方法: 使用系统;使用System.Runtime.CompilerServices ;使用System.Runtime.InteropServices ; //禁用警告CS0108:'X ..
发布时间:2016-10-08 15:39:53 C#/.NET

我怎么能生成C#源代码对于COM互操作库,而不是组装?

在导入COM库(无论是与TLBIMP直接或间接与Visual Studio Add Reference对话框,)有没有办法生成C#源代码,而不是二进制互操作程序集,像Interop.Word.dll,例如? UPD:反射器是坏主意。问题在于,对于COM接口不仅是一个签名,但成员的顺序。反射此令被违反 解决方案 我会继续前进,产生使用TLBIMP的互操作程序集,以及使用的反射来拆卸。 ..
发布时间:2016-10-05 23:55:29 C#/.NET

经过一个复杂的对象在C ++到C#通过COM

此问题上存在的问题展开这里:结果 的从C ++传递对象到C#虽然COM 通过一个简单的对象前一个问题的交易,但我想这样做对于一个复杂的对象。 因此,而不是TestEntity1有一个单一的财产,如果有型TestEntity2他人财产的,我怎么能分配TestEntity1类型TestEntity2的财产?对象在C ++消费者 C#: 使用系统; 使用System.Coll ..
发布时间:2016-10-03 22:04:47 C#/.NET

我应该如何申报Microsoft.Office.Interop.Excel.Worksheet这样我就可以在C#中关闭它?

我有一个很难确保我的COM对象被关闭,所以我不会离开在后台运行的进程EXCEL.EXE。我了解到,申报的双点链接是坏的,因为这可能使游逛COM对象。 有谁知道如何解决这行代码这样我就可以正确地关闭和释放工作表COM对象? =表(Microsoft.Office.Interop.Excel.Worksheet)workbook.Sheets [则strName] 编辑 ..
发布时间:2016-10-03 21:26:17 C#/.NET

Regasm和COM互操作漏报

我试图揭露通过COM我们的库,但似乎战斗工具多的实际问题。不管我怎么写我的COM类暴露我得到警告:“XXX.dll不包含可以注册为COM互操作的类型”(在项目属性标记项目作为注册COM互操作)。即使下面的简单类(如在装配体中唯一类是有符号和标记有ComVisible特性(假)标记)仍警告仍然存在: [的Guid(“77699130-7D58-4d29-BE18-385871B000D1”) ..
发布时间:2016-10-03 21:00:10 C#/.NET

使用Excel互操作导入txt文件在C#(QueryTables.Add)

我想插入文本文件转换成使用Querytables.Add Excel单元格中;没有错误,但该工作表是空的。除了使用Value 2属性的单细胞操纵。 我已经在使用宏录制使用的对象。 你能帮助我在这(我使用VS2008,C#,Excel 2003和2007;既显示空单元格) 下面是我的代码。感谢您的帮助。 应用程序=新ApplicationClass(); 试 { 对象mi ..
发布时间:2016-10-03 20:30:29 C#/.NET

创建IStream对象在C#

从他们的DLL 我正在写一个项目,并与另一方DLL工作。 功能要IStream对象保存的结果,但我不明白如何创建一个IStream对象。 谁能帮我与我的问题? 解决方案 您不创建IStream对象,因为很明显,这是一个接口。您应该相当实现此接口,并通过你的对象。或者干脆利用它已经实现了它,如果存在这样的对象的对象。 有关类似的问题已经给了答案给出了一个很好的例子如何使用 ..
发布时间:2016-10-03 19:48:12 C#/.NET

转换C ++字符串/ wchar_t的*到C#字符串?

问:我需要从C ++的可执行文件调用C#DLL。 我使用COM和它的int,long和布尔工作正常。但我不能沿... IDL文件说,这是一个BSTR得到一个字符串,但我不能正确传递,也不检索一个。 我尝试使用wchar_t的*和使用sysalloc我用VB6做了,但似乎并没有工作。 任何人都知道怎么回事,或者可能是什么?错 解决方案 如果您在使用ATL,你可以这样做: ..
发布时间:2016-10-01 20:21:36 C#/.NET

COM互操作传递错误的指针,只有我的数据一个字节

我在使用COM传递指针到本地代码的一个问题。我想建立在管理(C#)代码的字节数组和数组传递给本机(C ++)代码。我处理托管代码的一面,和我的同事拥有本机端。注意,我在管理方强多了,我已经用书面COM对象几乎一直 的COM签名(简体)看起来这样: 不安全无效DoSomething的([IN]字节*缓冲区,[中] UINT长) 和我叫它是这样的: VAR ARR ..
发布时间:2016-10-01 20:14:36 C#/.NET