19得票1回答
注册托管COM组件时,是否需要使用“已实现类别”键?

手动注册托管类以供 COM 互操作时,需要某些注册表键。例如:HKEY_CLASSES_ROOT CLSID\[My Cls Id] InprocServer32 (Default) = "mscoree.dll" Assembly = [My assembly...

8得票1回答
MethodImplAttribute(InternalCall, Runtime)是用于COM互操作接口方法的,它的作用是什么?

在 .NET Framework 的 Windows API Code Pack 中,许多 COM Interop 接口的方法都使用 MethodImplAttribute 进行了修饰,例如: internal interface IShellItem { [PreserveSig]...

7得票2回答
从VB6传递字符串数组到C#.net

如何通过COM互操作将VB6字符串数组 [假设为s =Array("a", "b", "c", "d")] 传递给C# .Net?我尝试了实现将C#字符串数组传递给VB和将VB字符串数组传递给C#,如下所示:C#->VB正常工作,但另一种方式(VB-> C#)会出现编译错误,错误信息是:“函数...

8得票3回答
强制.NET互操作使用本地COM DLL

是否可以强制使用一个Interop程序集来引用其关联COM DLL的本地副本? 以下是情况: 我有一个.NET应用程序引用了一个Interop程序集(Interop.OTAClient.dll),它是HP质量中心自动化API COM DLL(OTAClient.dll)的Interop。我...

16得票9回答
ASP.Net在托管时生成Excel的Com-InterOp问题

在我的ASP.Net应用程序中,我使用MsExcel Object Libby(Com-InterOp)生成Excel文件。该应用程序在VS dev.环境中运行良好。 但是,当我将其托管到服务器上时,如果没有用户通过远程桌面连接登录到服务器,则会出现以下错误: “检索具有CLSID {00...

34得票4回答
如何获取COM对象的类型

我在Visual Studio中引用了一个COM库,所以它自动为我创建了相应的Interop程序集。我想对这些COM对象执行GetType(),但它们总是返回System.__ComObject。不过,通过查询它们的接口可以正常工作:bool isOfType = someComeObject...

7得票1回答
如何从C#调用COM对象

首先,我意识到这里有很多帖子都讨论了这个问题。我肯定已经阅读了超过20篇,但它们都没有给出我需要的答案。 我编写了一个微小的C#测试COM DLL,其中只有一个方法,在消息框中打印“我活着了!”。使用管理员身份运行VStudio,我可以构建和注册COM对象。我已成功从VBA调用该对象并运行该...

19得票3回答
在C#中,出现在类上方的Guid属性是什么?

最近我学习了一些C#代码,其中一个类上面有一个Guid属性。我不明白这是什么或者它用来做什么。 请问有人能给我简单介绍一下它的作用,或者指出一些提供更多信息的文章吗? 谢谢!

9得票2回答
从C#(COM互操作)传递BSTR到COM函数的约定

我正在用C++编写一个COM API,并编写一个使用该API的C#程序。我的问题是在将BSTR传递到COM函数时,如何管理BSTR内存。假设我的IDL看起来像: HRESULT SomeFunction([in] BSTR input); 目前,这个函数的实现方式是这样的: HRESU...

10得票2回答
.NET互操作是否会来回复制数组数据,还是会固定该数组?

我有一个在C#中声明的COM方法签名:void Next(ref int pcch, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)] char[] pchText); 我这样称呼它:int c...