草庐IT

c# - 什么时候需要在 C# 中通过 COM 查询的接口(interface)上调用 Marshal.ReleaseComObject

我一直在使用一些DirectShow接口(interface)来使用C#和DirectShow.Net播放数字电视(DVB-T).我最近遇到运行时错误COMobjectthathasbeenseparatedfromitsunderlyingRCWcannotbeused.此错误发生在以下行中:_guideData=_transportInformationFilterasIGuideData;_transportInformationFilter属于IBaseFilter类型,这是一个先前通过DirectShow.Net实用程序函数分配的COM对象。我假设错误是由于_transpor

c# - 在没有类型库的情况下使用 C# 中的 COM dll

我需要使用很久以前用Delphi开发的COM组件(dll)。问题是:dll不包含类型库…….NET中的每个互操作功能(例如TlbImp)似乎都依赖于TLB。该组件已在此处的Delphi程序中使用多年,没有出现任何问题,因为“使用Delphi的COM对象不是什么大问题,因为我们知道接口(interface)”(引用Delphi开发人员的话)。有什么方法可以在没有TLB的情况下从c#使用此DLL?我试过将DLL用作非托管,但它导出的唯一方法是DllUnregisterServer、DllRegisterServer、DllCanUnloadNow和DllGetClassObject。我知道

c# - .NET 4 任务并行库可以使用 COM 对象吗?

这是一个“这可能吗,如果可以的话,你能给我一个简单的例子吗,因为我在网上找不到一个?”类似的问题。我有许多完全独立的(即“令人尴尬的并行”)进程,我想使用C#在.NETFramework4中使用TaskParallel库并行运行这些进程。其中一些流程需要使用可通过COM/OLE自动化访问的软件。具体来说,有一个Parallel.Foreach()循环从项目列表中划分任务,基本上调用Parallel.Foreach内部的不同函数来处理处理(因此其中一些函数使用COM库来工作).这可能吗?谢谢。 最佳答案 通过TPL使用COM对象是10

c# - C# 中的 MSMQ COM API

从C#使用MSMQManagement的最佳方式是什么?当远程机器断开连接时,我需要能够查看和清除本地传出队列。显然有些用户可以通过COMAPI执行此操作,但在COM引用选项卡中,我没有其他网站/博客/帖子提到的“MicrosoftMessageQueue3.0对象库”(也没有任何类似的内容)。我在机器上搜索了Interop.MSMQ.dll,但也找不到。我们使用VS2008并在Windows764位上运行。我错过了什么?是否有其他机制可以通过“正常”托管类来实现这一点?谢谢 最佳答案 项目+添加引用,浏览选项卡。导航到c:\win

c# - 如何使用 Skype4COM 在 Skype 的群聊中发送消息?

我一直在尝试用C#制作一个“SkypeBot”。到目前为止,我已经成功地让它在一对一的聊天中发挥作用。我无法让它在群聊中工作。这是我的来源:usingSystem;usingSystem.Windows.Forms;usingSKYPE4COMLib;namespaceSkypeBot{publicpartialclassForm1:Form{privateSkypeskype;privateconststringtrigger="!";//Say!helpprivateconststringnick="Bot";publicForm1(){InitializeComponent();

c# - WCF SslStreamSecurity DNS 身份检查仅针对 4.6 框架失败

我正在为托管在IIS中的Wcf服务开发新的绑定(bind),我以为一切正常,但事实证明,如果我更改它,客户端仅在针对.NetFramework4.5时才有效以4.6为目标,然后在尝试打开连接时出现以下错误:System.ServiceModel.Security.MessageSecurityExceptionoccurredHResult=-2146233087Message=TheIdentitycheckfailedfortheoutgoingmessage.Theremoteendpointdidnotprovideadomainnamesystem(DNS)claimandt

c# - 在 C# 中从 DNS 解析 IP 地址

这个问题在这里已经有了答案:Can'tparsedomainintoIPinC#?(6个答案)关闭9年前。我正在尝试建立到IP地址的TCP套接字连接。我可以通过像这样直接解析IP地址来做到这一点:IPAddressipAddress=IPAddress.Parse("192.168.1.123");IPEndPointremoteEP=newIPEndPoint(ipAddress,80);//CreateaTCP/IPsocket.Socketsender=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolT

c# - 为什么访问 com 端口被拒绝?

代码:staticvoidMain(string[]args){Console.WriteLine("Memorymappedfilereaderstarted");using(varfile=MemoryMappedFile.OpenExisting("AIDA64_SensorValues")){using(varreaderz=file.CreateViewAccessor(0,0)){varbytes=newbyte[567];varencoding=Encoding.ASCII;readerz.ReadArray(0,bytes,0,bytes.Length);File.Wr

c# - 登录到使用 Live.com 身份验证的站点

我一直在尝试自动登录我经常访问的网站www.bungie.net。该网站与Microsoft和XboxLive相关联,因此当人们登录到他们的网站时会使用WindowsLiveIDAPI。我对创建网络蜘蛛/机器人比较陌生,我担心我误解了一些最基本的概念。我已经模拟登录到其他网站,如Facebook和Gmail,但live.com给我带来了麻烦。无论如何,我一直在使用Wireshark和Firefox插件TamperData来尝试找出我需要发布的内容,以及我的请求中需要包含哪些cookie。据我所知,这些是登录此站点必须遵循的步骤。1.访问https://login.live.com/lo

c# - 如何使 .NET COM 对象成为单元线程?

.NET对象默认是自由线程的。如果通过COM编码到另一个线程,它们总是被编码到自己,无论创建者线程是否为STA,也无论它们的ThreadingModel注册表值如何。我怀疑,他们汇总了FreeThreadedMarshaler(有关COM线程的更多详细信息,请参见here)。我想让我的.NETCOM对象在编码到另一个线程时使用标准的COM编码器代理。问题:usingSystem;usingSystem.Runtime.InteropServices;usingSystem.Threading;usingSystem.Threading.Tasks;usingSystem.Windows