草庐IT

com-state

全部标签

c# - 为 COM DLL 创建 .NET 包装器的工具?

是否有任何开源工具可以自动为COMDLL库生成.NET包装器? 最佳答案 在.NET中使用COM对象不需要包装器。在VisualStudio中,在解决方案资源管理器中右键单击您的项目名称,然后选择“添加引用”。任何已注册的COM对象都将列在COM选项卡中。只有在将.NET程序集用作COM对象时才需要互操作包装器,而不是像您在问题中描述的那样相反。 关于c#-为COMDLL创建.NET包装器的工具?,我们在StackOverflow上找到一个类似的问题: htt

c# - 在 C# 中获取整数的高字节和低字节并将其作为 char 数组发送到 com 端口,如何?

在C中我会这样做intnumber=3510;charupper=number>>8;charlower=number&&8;SendByte(upper);SendByte(lower);其中upper和lower都=54在C#中我这样做:intnumber=Convert.ToInt16("3510");byteupper=byte(number>>8);bytelower=byte(number&8);charupperc=Convert.ToChar(upper);charlowerc=Convert.ToChar(lower);data="GETDM"+upperc+lowe

c# - 使用 COM 从注册表加载类适用于 ToolsVersion ="2.0"但因 ToolsVersion ="4.0"而失败

我有一个c#项目,它使用内部vb项目作为COM。当我将项目转换为VS2010时,以下行向我抛出异常:SetRTCClient_=NewRTCCORELib.RTCClientRTCCore.RTCClient是MicrosoftMergeModuleforRTC(RTC客户端API1.2)的一部分,您可以将其嵌入安装包(在我的例子中包括EXE)。RTCCore.RTCClient是在HKEY_CLASSES_ROOT\RTCCore.RTCClient下注册到注册表的类我得到的错误是:ERROR:AutomationerrorThespecifiedmodulecouldnotbefo

c# - 可以从 .NET 与 64 位 COM 服务器 (Photoshop) 交互吗?

我一直在尝试通过添加COM引用和后期绑定(bind)来编写一些代码来与Photoshop进行交互。我花了一段时间才意识到代码确实有效,但不适用于64位版本的Photoshop。我在64位Photoshop中得到的异常如下:COMExceptionwasunhandledRetrievingtheCOMclassfactoryforcomponentwithCLSID{D9389EDE-AEF8-4092-9377-075E94B7CB9A}failedduetothefollowingerror:80080005Serverexecutionfailed(ExceptionfromHR

c# - 在 C# 中使用分区在远程服务器上激活 COM+

我想访问远程服务器上的分区COM+应用程序。我试过这个:usingCOMAdminusingSystem.Runtime.InteropServices;_serverName=myRemoteServer;_partionName=myPartionName;_message=myMessage;ICOMAdminCatalog2catalog=newCOMAdminCatalog();catalog.Connect(_serverName);stringmoniker=string.Empty;stringMsgInClassId="E3BD1489-30DD-4380-856A-

c# - 启用 native 代码调试以深入 COM 对象

我有一些代码使用由COM公开的第3方库(ArcObjects)。例如,IGeometry接口(interface)。IGeometrygeometry=GetGeometry();现在,当我想查看对象成员时,我打开一个QuickWatch:我读过几个问题,它们都指向VisualStudio2015中的“启用native代码调试”选项。我已经启用该选项但无济于事。如何让调试器公开COM对象的成员?编辑:当使用VS2010和.NET3.5时,这有效: 最佳答案 如果您还拥有组件的PDB和源代码,则启用非托管调试只会产生有用的副作用。你不

c# - COM接口(interface)指南

我不太了解COM接口(interface),所以我有一个小问题,假设我有这段代码:[Guid("148BD528-A2AB-11CE-B11F-00AA00530503"),InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]internalinterfaceIEnumWorkItems{[PreserveSig()]intNext([In]uintRequestCount,[Out]outSystem.IntPtrNames,[Out]outuintFetched);voidSkip([In]uintCount);voidReset

c# - 使用 Smtp.mail.microsoftonline.com 发送电子邮件

上下文:我们是一家小公司,没有Exchange服务器(或任何专用于它的服务器),但我们仍然需要接收/发送电子邮件。我们决定使用Microsoft在线服务(MOS)目标:我们有一个Web服务器(带有IIS6.0的WindowsServer2003R2)并部署了一个C#ASP.NetMCV应用程序。每次用户创建帐户时,Web应用程序都需要发送电子邮件。根据documentation我们需要使用端口(587)并确保启用传输层安全性(TLS)。此外,使用的FROM地址必须是“权威”类型,当我通过MicrosoftOnlineAdministrationCenter仔细检查时就是这样。代码:我的

c# - 是否可以从 .NET 测试暴露于 COM 的程序集?

我有一个.NET程序集,我通过一个tlb文件向COM公开了它,还有一个注册tlb的安装程序。我已手动检查安装程序是否正常工作以及COM客户端是否可以访问该库。到目前为止,还不错...但是,我正在尝试将一些自动化系统测试放在一起,以检查安装程序是否正常工作。作为其中的一部分,我已经在VM上自动安装,现在我想对安装的COM库进行一些调用以验证它是否正常工作。我最初考虑用VB6编写一些测试,但我已经有一大套用C#编写的测试,它们引用了.NET程序集。我希望我可以更改这些以引用.tlb,但是当我在VS2008中尝试此操作时出现错误:ActiveX类型库“blah.tlb”是从.NET程序集导出

c# - 如何检查 COM dll 是否已在 C# 中注册

我在VS2008、C#、.NET3.5和VSTO中创建了一个Office加载项。它通过ClickOnce部署。运行时配置表单执行regsvr32以注册项目中包含的“fooapi.dll”,由于ClickOnce限制,该项目无法在安装期间注册。是否有任何首选方法来检查并查看“fooapi.dll”是否在运行时在C#中注册? 最佳答案 试试Type.GetTypeFromCLSID或Type.GetTypeFromProgID快速检查COM接口(interface)是否存在的方法。或者,只需实例化对象并捕获异常,例如catch(COME