com-interop相关内容
问题:我需要从C ++可执行文件调用C#dll。 我使用COM,它适用于int,long和bool。但我不能得到一个字符串... IDL文件说它是一个BSTR,但我不能正确传递,也不检索一个。 我试着使用wchar_t *和使用sysalloc像我做VB6,但是似乎不工作。 任何人都知道如何,或什么可能错误? 解决方案 如果您使用的是ATL,您可以这样做: std
..
我有一个C + + COM服务器,我最近重新编译为64位。这个COM服务器有一个方法,它包含一个struct参数,该参数包含一些int和一个BSTR和另一个结构。现在,我试图从一个64位.Net C#应用程序调用此COM服务器。我可以成功加载我的COM服务器,并调用此方法,只要我不尝试填充任何字符串参数。如果我尝试在int成员中传递有效的值,它们最终在COM对象实现结束的时候损坏。看起来好像结构被
..
我有一个C + + COM服务器,我最近重新编译为64位。这个COM服务器有一个方法,它包含一个struct参数,该参数包含一些int和一个BSTR和另一个结构。现在,我试图从一个64位.Net C#应用程序调用此COM服务器。我可以成功加载我的COM服务器,并调用此方法,只要我不尝试填充任何字符串参数。如果我尝试在int成员中传递有效的值,它们最终在COM对象实现结束的时候损坏。看起来好像结构被
..
我有一个COM类 CMyCOMServer 在一个应用程序中实现 IMyInterface ,两者都有正确的GUID。 如果请求了IUnknown或IMyInterface,则CMyCOMServer :: QueryInterface 将返回S_OK(并转换为正确的类型)。 在同一台电脑上的另一个应用程序中,我调用: HRESULT hr = :: CoCreateInstance
..
我有一个C#dll,我已正确注册COM互操作,并使COM可见。使用cppbuilder,我导入了类型库,它生成了包装类,我现在尝试使用创建我的C#类的实例。但是,我得到一个REGDB_E_CLASSNOTREG错误在我的C ++代码。我验证了dll是在注册表中,甚至重新注册它与regasm。不用找了。 这是我的C ++代码: _MyClassPtr obj; HRESULT hr
..
我试图使用C#4从Word文档中删除页脚。页脚如下所示: 18,2012 实际上,这是Word VBA中显示的页脚文本: 第1页(2012年4月18日 1“和”April“。最后页脚应如下所示: 2012年4月18日 无论如何,在Word VBA中,我可以使用这个代码: Dim rngFtr As Range 设置rngFtr = ActiveDocu
..
目标:打造的与COM互操作,以通过在另一个环境德尔福被称为C#DLL 问题:Windows正在阻止我。建,说我没有权限编辑注册表 上下文: 我使用Windows 8时,Visual Studio 2012,UAC被关闭。 我使用RGiesecke的DLLEXPORT与注释[DLLEXPORT] 我要导出为DLL中的方法。 我用 [标记有ComVisible特性(真)] 的建议
..
当我我的元帅函数返回一个的String [] 为 UnmanagedType.Struct 与 SafeArraySubType = VarEnum.VT_ARRAY 在 命名空间计算器 { [标记有ComVisible特性(真)] [的Guid(“4BDC43D4-8FD7-4F58-BEE5-E57C3C144C1B”)] 公共类数组 { [返回:的MarshalAs(Un
..
我想显示一个标准的打开文件对话框,可以选择文件夹,使用C#中的IFileOpenDialog接口,Visual Studio 2010中。 我试着使用最少的代码,所以我只确定我需要在界面的方法: 使用系统;使用System.Runtime.CompilerServices ;使用System.Runtime.InteropServices ; //禁用警告CS0108:'X
..
在导入COM库(无论是与TLBIMP直接或间接与Visual Studio Add Reference对话框,)有没有办法生成C#源代码,而不是二进制互操作程序集,像Interop.Word.dll,例如? UPD:反射器是坏主意。问题在于,对于COM接口不仅是一个签名,但成员的顺序。反射此令被违反 解决方案 我会继续前进,产生使用TLBIMP的互操作程序集,以及使用的反射来拆卸。
..
当实例化一个COM互操作的对象: VAR comObj =新ComComponentClass(); 我得到的收到COMException : 检索COM类工厂CLSID为 {C343ED84-A129-11D3-B799-0060B0F159EF}组件未能由于以下错误: 80040154类没有注册 (从HRESULT异常:0x80040154的(REGDB_
..
当我尝试从C ++调用C#代码,我也跟着从这篇文章说明 的 http://support.microsoft.com/kb/828736 我的C#的部分是: [的Guid(“6A2E9B00-C435-48f8-AEF1-747E9F39E77A”)] 公共接口IGameHelper $ { b $ b无效的getInfo(串出结果); } 公共类GameHelp
..
此问题上存在的问题展开这里:结果 的从C ++传递对象到C#虽然COM 通过一个简单的对象前一个问题的交易,但我想这样做对于一个复杂的对象。 因此,而不是TestEntity1有一个单一的财产,如果有型TestEntity2他人财产的,我怎么能分配TestEntity1类型TestEntity2的财产?对象在C ++消费者 C#: 使用系统; 使用System.Coll
..
需要转储到工作表有16000×12条目的而higeisch数据集 我现在用下面的函数: 为(INT R = 0;为r dt.Rows.Count ++ R) { 为(INT C = 0;℃下dt.Columns.Count ++ C) { worksheet.Cells [C + 1] [R + 1] = dt.Rows [R] [C]的ToString( ); } }
..
我有一个很难确保我的COM对象被关闭,所以我不会离开在后台运行的进程EXCEL.EXE。我了解到,申报的双点链接是坏的,因为这可能使游逛COM对象。 有谁知道如何解决这行代码这样我就可以正确地关闭和释放工作表COM对象? =表(Microsoft.Office.Interop.Excel.Worksheet)workbook.Sheets [则strName] 编辑
..
我试图揭露通过COM我们的库,但似乎战斗工具多的实际问题。不管我怎么写我的COM类暴露我得到警告:“XXX.dll不包含可以注册为COM互操作的类型”(在项目属性标记项目作为注册COM互操作)。即使下面的简单类(如在装配体中唯一类是有符号和标记有ComVisible特性(假)标记)仍警告仍然存在: [的Guid(“77699130-7D58-4d29-BE18-385871B000D1”)
..
我想插入文本文件转换成使用Querytables.Add Excel单元格中;没有错误,但该工作表是空的。除了使用Value 2属性的单细胞操纵。 我已经在使用宏录制使用的对象。 你能帮助我在这(我使用VS2008,C#,Excel 2003和2007;既显示空单元格) 下面是我的代码。感谢您的帮助。 应用程序=新ApplicationClass(); 试 { 对象mi
..
从他们的DLL 我正在写一个项目,并与另一方DLL工作。 功能要IStream对象保存的结果,但我不明白如何创建一个IStream对象。 谁能帮我与我的问题? 解决方案 您不创建IStream对象,因为很明显,这是一个接口。您应该相当实现此接口,并通过你的对象。或者干脆利用它已经实现了它,如果存在这样的对象的对象。 有关类似的问题已经给了答案给出了一个很好的例子如何使用
..
问:我需要从C ++的可执行文件调用C#DLL。 我使用COM和它的int,long和布尔工作正常。但我不能沿... IDL文件说,这是一个BSTR得到一个字符串,但我不能正确传递,也不检索一个。 我尝试使用wchar_t的*和使用sysalloc我用VB6做了,但似乎并没有工作。 任何人都知道怎么回事,或者可能是什么?错 解决方案 如果您在使用ATL,你可以这样做:
..
我在使用COM传递指针到本地代码的一个问题。我想建立在管理(C#)代码的字节数组和数组传递给本机(C ++)代码。我处理托管代码的一面,和我的同事拥有本机端。注意,我在管理方强多了,我已经用书面COM对象几乎一直 的COM签名(简体)看起来这样: 不安全无效DoSomething的([IN]字节*缓冲区,[中] UINT长) 和我叫它是这样的: VAR ARR
..