registration-free-com
全部标签 在你告诉我“googleit”之前-听我说完。我来自C++和Perl/Python(在Linux上)背景,但我有几个项目即将开始,我必须跳入Windows开发。专门创建一些COMDLL(不是.Net)。顺便说一句,在阅读了一些资源之后,我对什么是COM和什么是DLL有了基本的了解。我尝试在Google上搜索,但我遇到的大多数教程都假设有一些Windows开发经验,或者至少在我看来是这样。所以,我想知道是否有人经历了类似的道路并且可能指出一个方向可以帮助我开始开发COMDLL。我可以访问VS2005。谢谢。 最佳答案 在VS中编程时尝
我有一个nativeC++ATL进程内COM服务器。单独的测试程序调用CoInitialize(),调用CoCreateInstance(),然后在指针上调用Release(),然后调用CoUnitialize()并退出。如果我在VisualC++调试器下运行测试程序,调试CRT会报告一次内存泄漏,并且每次分配的编号都是相同的。我用了anallocationhook发现没有返回堆的对象是类工厂对象。所以基本上会发生以下情况:程序调用CoCreateInstance()COM内部调用DllGetClassObject()ATL实例化工厂并将所有权传递给调用者(COM内部)然后工厂永远不会
我需要编写一个终端来与COM端口通信,我需要能够从COM端口以及同时从控制台发送命令。(我想通过两个相互无线通信的传感器节点访问计算机,所以我仍然需要一种从节点向计算机发送内容的方法)现在,我已经实现了一个非重叠串行通信,但我不确定如何实现“同时发送和接收”部分,我只有大约4天的时间来解决这个问题。那里并没有那么多信息,所以我欢迎任何关于如何实现最快或最简单方法的指示。据我所知,重叠I/O通信在时间上并不是很友好。是否可以使用多线程(仅重叠)来做到这一点?我猜在那种情况下我必须每隔几毫秒读取一次缓冲区并为输入创建一个自己的线程? 最佳答案
当有人使用任务管理器结束已实例化COM对象的.NET进程时,AFAIK无法在try{}finally{}中调用Marshal.FinalReleaseComObject,使用{}或事件处理block。下次启动应用程序时,COM对象处于不可用状态,我需要重新启动机器才能使其再次运行。我使用Marshal.BindToMoniker实例化对象。我做错了什么,我错过了什么吗?我尝试了Saeed的建议,但没有用privateconstintWM_CLOSE=0x0010;protectedoverridevoidWndProc(refMessagem){if(m.Msg==WM_CLOSE){
我正在开发一个使用虚拟串行端口设备驱动程序与USB设备通信的应用程序。我们遇到过这样一种情况,如果在串口句柄打开时设备被拔掉(或死机),那么在串口句柄关闭后重新连接的唯一方法是拔掉设备,然后再插回。如果我能够足够快地检测到故障,则有潜在的解决方法。问题在于,在这些条件下,以下函数调用不会报告错误:ClearCommErrorGetCommModemStatusReadFile根据我的经验,当设备被拔掉时唯一返回错误的函数是WriteFile。可以理解,我真的不想为了测试端口连接是否仍然有效而编写无意义的数据。我的问题是是否有一些方法可以用来确定端口连接是否仍然有效。如果对我正在做的事情
我想知道是否有某种方法可以将python脚本封装为COM对象。我看到很多主题都在谈论从python调用COM组件,但我对相反的方向感兴趣:创建一个实际上是python的COM组件。我有一些用python制作的库,我想从excel电子表格中调用它们,我认为这可能是一个很好的方法。 最佳答案 可能实现此目的的一种方法是使用.NET创建COM对象并使用IronPython执行Python代码。这是它如何工作的想法:usingSystem;usingSystem.Runtime.InteropServices;usingSystem.IO;
我正在调试内存不足的异常。当我得到异常时,“虚拟字节”性能计数器指示有足够的可寻址空间。然而,问题在于可寻址空间碎片化严重,并且“最大空闲区域”(从WinDbg中的!address返回)太小。为了测量内存碎片,我想在perfmon中监控“最大空闲区域”。是否有一个性能计数器可以给我这个值? 最佳答案 我不相信这条信息有一个单独的性能计数器,但可以使用VirtualQueryExWin32函数推导出来。您可以在最小有效虚拟地址(可以从GetSystemInfo获得)上调用它,然后您可以使用返回的页面范围的大小来确定下一个页面范围的
原来有一个HKCR\Interface子树,我可以在其中注册我新引入的COM接口(interface)。当我得到它时,我会在两种情况下需要它:如果我想启用编码-那么我可以在那里注册代理/stub如果我想发布有关我的组件的更多信息,以便其他开发人员可以查找接口(interface)ID并在HKCR\Interface{InterfaceId}\Default值下找到它的人类可读名称。还有什么其他场景需要在HKCR\Interface注册我的接口(interface)吗? 最佳答案 可以将指向接口(interface)类型库的链接放在H
我有一个用VisualC++编写的COMDLL。我完全控制那个COMDLL代码。当然,它可以从托管和非托管应用程序中使用。我想插入一个非常具体的检查,该检查只应在.NET应用程序使用COMDLL时运行。我的COM对象是否有某种编程方式来检测它是从.NET应用程序还是从非托管应用程序使用? 最佳答案 这类“我的环境是什么”的问题总是有相同的答案。您的主机很容易确定它是否被管理,只需在您的界面上添加一个属性让它告诉您。与替代方案相比,这是一个微不足道的解决方案。在COM中不可能可靠地实现,有很多托管服务器的方法。
我在哪里可以找到内核中的free和malloc函数?我确实包含了stdlib.h,但是free和malloc函数不在stdlib.h中。我在哪里可以找到这些功能?谢谢! 最佳答案 看看ExAllocatePoolWithTag.在OSR有一些讨论,如果您正在进行Windows内核编程,这是一个很好的资源。安装WindowsDriverKit/DDK用于本地主机上的所有开发文件和文档。 关于windows-Windows内核中的free/malloc函数,我们在StackOverflow上