草庐IT

com-state

全部标签

windows - COM DLL 介绍

在你告诉我“googleit”之前-听我说完。我来自C++和Perl/Python(在Linux上)背景,但我有几个项目即将开始,我必须跳入Windows开发。专门创建一些COMDLL(不是.Net)。顺便说一句,在阅读了一些资源之后,我对什么是COM和什么是DLL有了基本的了解。我尝试在Google上搜索,但我遇到的大多数教程都假设有一些Windows开发经验,或者至少在我看来是这样。所以,我想知道是否有人经历了类似的道路并且可能指出一个方向可以帮助我开始开发COMDLL。我可以访问VS2005。谢谢。 最佳答案 在VS中编程时尝

windows - 为什么我的 COM 工厂在程序生命周期内从未被释放?

我有一个nativeC++ATL进程内COM服务器。单独的测试程序调用CoInitialize(),调用CoCreateInstance(),然后在指针上调用Release(),然后调用CoUnitialize()并退出。如果我在VisualC++调试器下运行测试程序,调试CRT会报告一次内存泄漏,并且每次分配的编号都是相同的。我用了anallocationhook发现没有返回堆的对象是类工厂对象。所以基本上会发生以下情况:程序调用CoCreateInstance()COM内部调用DllGetClassObject()ATL实例化工厂并将所有权传递给调用者(COM内部)然后工厂永远不会

c - 实现 Com 端口终端的最简单方法。 ( Windows ,C)

我需要编写一个终端来与COM端口通信,我需要能够从COM端口以及同时从控制台发送命令。(我想通过两个相互无线通信的传感器节点访问计算机,所以我仍然需要一种从节点向计算机发送内容的方法)现在,我已经实现了一个非重叠串行通信,但我不确定如何实现“同时发送和接收”部分,我只有大约4天的时间来解决这个问题。那里并没有那么多信息,所以我欢迎任何关于如何实现最快或最简单方法的指示。据我所知,重叠I/O通信在时间上并不是很友好。是否可以使用多线程(仅重叠)来做到这一点?我猜在那种情况下我必须每隔几毫秒读取一次缓冲区并为输入创建一个自己的线程? 最佳答案

c# - 如何恢复未正确释放的 COM 对象?

当有人使用任务管理器结束已实例化COM对象的.NET进程时,AFAIK无法在try{}finally{}中调用Marshal.FinalReleaseComObject,使用{}或事件处理block。下次启动应用程序时,COM对象处于不可用状态,我需要重新启动机器才能使其再次运行。我使用Marshal.BindToMoniker实例化对象。我做错了什么,我错过了什么吗?我尝试了Saeed的建议,但没有用privateconstintWM_CLOSE=0x0010;protectedoverridevoidWndProc(refMessagem){if(m.Msg==WM_CLOSE){

c++ - 使用 Windows USB 虚拟 Com 端口识别断开连接事件

我正在开发一个使用虚拟串行端口设备驱动程序与USB设备通信的应用程序。我们遇到过这样一种情况,如果在串口句柄打开时设备被拔掉(或死机),那么在串口句柄关闭后重新连接的唯一方法是拔掉设备,然后再插回。如果我能够足够快地检测到故障,则有潜在的解决方法。问题在于,在这些条件下,以下函数调用不会报告错误:ClearCommErrorGetCommModemStatusReadFile根据我的经验,当设备被拔掉时唯一返回错误的函数是WriteFile。可以理解,我真的不想为了测试端口连接是否仍然有效而编写无意义的数据。我的问题是是否有一些方法可以用来确定端口连接是否仍然有效。如果对我正在做的事情

c# - 创建一个 Python COM 对象

我想知道是否有某种方法可以将python脚本封装为COM对象。我看到很多主题都在谈论从python调用COM组件,但我对相反的方向感兴趣:创建一个实际上是python的COM组件。我有一些用python制作的库,我想从excel电子表格中调用它们,我认为这可能是一个很好的方法。 最佳答案 可能实现此目的的一种方法是使用.NET创建COM对象并使用IronPython执行Python代码。这是它如何工作的想法:usingSystem;usingSystem.Runtime.InteropServices;usingSystem.IO;

windows - 我什么时候应该在 HKCR\Interface 中注册我的 COM 接口(interface)?

原来有一个HKCR\Interface子树,我可以在其中注册我新引入的COM接口(interface)。当我得到它时,我会在两种情况下需要它:如果我想启用编码-那么我可以在那里注册代理/stub如果我想发布有关我的组件的更多信息,以便其他开发人员可以查找接口(interface)ID并在HKCR\Interface{InterfaceId}\Default值下找到它的人类可读名称。还有什么其他场景需要在HKCR\Interface注册我的接口(interface)吗? 最佳答案 可以将指向接口(interface)类型库的链接放在H

.net - 如何检测 .NET 应用程序是否正在使用我的 COM 对象?

我有一个用VisualC++编写的COMDLL。我完全控制那个COMDLL代码。当然,它可以从托管和非托管应用程序中使用。我想插入一个非常具体的检查,该检查只应在​​.NET应用程序使用COMDLL时运行。我的COM对象是否有某种编程方式来检测它是从.NET应用程序还是从非托管应用程序使用? 最佳答案 这类“我的环境是什么”的问题总是有相同的答案。您的主机很容易确定它是否被管理,只需在您的界面上添加一个属性让它告诉您。与替代方案相比,这是一个微不足道的解决方案。在COM中不可能可靠地实现,有很多托管服务器的方法。

PHP fatal error : Class 'COM' not found

将PHP升级到v.5.5.1后出现此错误:Fatalerror:Class'COM'notfoundinC:\inetpub\wwwroot\ndsystems\database_engine\mssql_engine.phponline184mssql_engine.php文件中的第184行:$this->COMConnection=newCOM('ADODB.Connection');//line184try{$this->COMConnection->Open($connectionString);$this->RetrieveServerVersion();}catch(com

windows - 对于COM服务器和注册表项重定向,是否需要做文件路径重定向转换?

如果标题不太准确,请原谅。我在做一些与COM服务器和注册表重定向相关的事情时遇到了一些问题,我不太确定我的理解是否正确。希望任何人都可以分享一些关于它的信息。提前致谢。基本上,在任何人可以使用它的服务之前,一个COM服务器已经在注册表中注册了。在64位Windows操作系统上,注册表中可能有2个可能的View,一个用于默认View,另一个用于WOW64View。例如,第一个注册表项是:COMPUTER\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID{GUID}\LocalServer32,另一个是:COMPUTER\HKEY_LOCAL_MACHIN