直到现在我需要发送数据时打开,然后立即关闭。我收到随机的“访问端口”错误(尽管我总是在使用后关闭端口),所以我在想也许让它一直开着。假设我需要每隔一两分钟在某些COM端口发送数据,正确的使用方法是什么?谢谢.. 最佳答案 频繁调用SerialPort.Close()是错误的。让另一个应用程序从您那里窃取端口并不是非常可取的。但更有问题的是,您遇到的问题是Close()不等待由SerialPort启动的工作线程退出。该工作线程引发DataReceived、PinChanged和ErrorReceived事件。它需要“一段时间”才能退出
我正在C#/.NET平台上开发一个时事通讯发送应用程序。我最近添加了使用maxmind.com数据库通过IP地址检索收件人所在国家和地区的模块。例如,我可以获得一些示例IP地址的以下信息:CountryCode:DECountryName:GermanyRegionName:HessenCity:FrankfurtAmMainLatitude:50.1167Longitude:8.6833我现在需要的是使用此信息获取用户的时区。我知道有一些GeoIp数据库也提供时区,但我需要使用这个具体的GeoIp数据库。此外,这里不能使用javascript确定时间偏移的方法。也许我可以使用国家和地
我有一个c#程序集,我通过COM从Delphi(win32native)应用程序调用它。这适用于我测试过的所有机器,除了一台。问题是Delphi应用程序在尝试创建COM对象时得到“类未注册”。现在,当我查看HKEY_CLASSES_ROOT\DelphiToCSharp\CLSID下的注册表时,那里列出的GUID与AssemblyInfo.cs中的程序集Guid不同。它应该是相同的-它在安装它的所有其他计算机上都是相同的。我试过regasm/unregisterdelphitocsharp.dll,这会删除注册表项。然后,如果我执行regasmdelphitocsharp.dll,注册
我有一个DLL,我想将其添加为对我的项目的引用,但每次我尝试这样做时都会弹出一个对话框告诉我:Thereferencecouldnotbeadded.Pleasemakesurethatthefileisaccesible,andthatitisavalidassemblyorCOMcomponent.我做了一些研究,发现错误是因为程序集不受.NET管理,我应该使用DLLImport属性,但是,我在另一台计算机上有完全相同的解决方案,一切正常。区别在于我尝试添加引用的新计算机是x64而旧计算机是x86。我有x64和x86DLL,但无法添加。为什么会这样? 最
使用VS2008,这是我的COM对象usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Runtime.InteropServices;usingSystem.Windows.Forms;namespaceTestCom{[Guid("9E5E5FB2-219D-4ee7-AB27-E4DBED8E123E")][ClassInterface(ClassInterfaceType.AutoDual)][ProgId("Test9.COMINT")]publicclassTestComClass
我一直在使用一些DirectShow接口(interface)来使用C#和DirectShow.Net播放数字电视(DVB-T).我最近遇到运行时错误COMobjectthathasbeenseparatedfromitsunderlyingRCWcannotbeused.此错误发生在以下行中:_guideData=_transportInformationFilterasIGuideData;_transportInformationFilter属于IBaseFilter类型,这是一个先前通过DirectShow.Net实用程序函数分配的COM对象。我假设错误是由于_transpor
我缺少Excel.Application.Quit或Excel.Application.BeforeQuit事件。有人知道模拟这些事件的解决方法吗?我通过COMInterop从C#WinForms应用程序访问Excel。给定一个Excel.Application对象,我如何:最好防止Excel退出?如果这不可能,我如何才能至少在Excel退出时注意到?请注意:因为我有一个对Excel.Application的COM引用,Excel进程不会退出当Excel被用户“退出”时。虽然这听起来很矛盾,但事实就是如此。“退出”是指用户点击窗口右上角的“退出”或“十字按钮”。窗口关闭,文件被卸载,加
我需要使用很久以前用Delphi开发的COM组件(dll)。问题是:dll不包含类型库…….NET中的每个互操作功能(例如TlbImp)似乎都依赖于TLB。该组件已在此处的Delphi程序中使用多年,没有出现任何问题,因为“使用Delphi的COM对象不是什么大问题,因为我们知道接口(interface)”(引用Delphi开发人员的话)。有什么方法可以在没有TLB的情况下从c#使用此DLL?我试过将DLL用作非托管,但它导出的唯一方法是DllUnregisterServer、DllRegisterServer、DllCanUnloadNow和DllGetClassObject。我知道
这是一个“这可能吗,如果可以的话,你能给我一个简单的例子吗,因为我在网上找不到一个?”类似的问题。我有许多完全独立的(即“令人尴尬的并行”)进程,我想使用C#在.NETFramework4中使用TaskParallel库并行运行这些进程。其中一些流程需要使用可通过COM/OLE自动化访问的软件。具体来说,有一个Parallel.Foreach()循环从项目列表中划分任务,基本上调用Parallel.Foreach内部的不同函数来处理处理(因此其中一些函数使用COM库来工作).这可能吗?谢谢。 最佳答案 通过TPL使用COM对象是10
从C#使用MSMQManagement的最佳方式是什么?当远程机器断开连接时,我需要能够查看和清除本地传出队列。显然有些用户可以通过COMAPI执行此操作,但在COM引用选项卡中,我没有其他网站/博客/帖子提到的“MicrosoftMessageQueue3.0对象库”(也没有任何类似的内容)。我在机器上搜索了Interop.MSMQ.dll,但也找不到。我们使用VS2008并在Windows764位上运行。我错过了什么?是否有其他机制可以通过“正常”托管类来实现这一点?谢谢 最佳答案 项目+添加引用,浏览选项卡。导航到c:\win