草庐IT

句柄泄露

全部标签

go - 在 ListenAndServe 中调用多个句柄

我想在http包的ListenAndServe方法中使用多个处理程序。例如:iferr:=http.ListenAndServe(":"+s.config.Port,handlers.LoggingHandler(os.Stdout,s.router),handlers.CORS()(r.router));err!=nil{问题:每次我收到以下错误:pkg/server/server.go:30:31:toomanyargumentsincalltohttp.ListenAndServehave(string,http.Handler,http.Handler)want(string,

xml - 使用 XML::Twig 解析文件句柄

我在XML::Twig文档中看到用于解析标量的函数parse($text)包含xml文本,而parsefile($fileName)用于读取和读取解析xml文件。我想解析一个输入流(一个文件句柄或者可能是STDIN)。仍在浏览文档,但没有找到任何东西。我应该怎么做? 最佳答案 XML::Twig是XML::Parser的子类,因此您应该能够通过parse()一个打开的IO::句柄。 关于xml-使用XML::Twig解析文件句柄,我们在StackOverflow上找到一个类似的问题:

c++ - 激活上下文导致动态加载的 DLL 上的文件句柄泄漏

我有一个动态加载和卸载的DLL,它需要COMCTL32.dll>=v6.0和MSVCR>=v9.0。为确保加载正确的版本,我在VisualStudio项目设置中启用list文件生成,并将此条目添加到另一个list文件:type="win32"name="Microsoft.Windows.Common-Controls"version="6.0.0.0"processorArchitecture="*"publicKeyToken="6595b64144ccf1df"language="*"/>在一个测试程序中我调用了LoadLibrary()其次是FreeLibrary()该DLL,

windows - Windows 进程的转储句柄和有关它们的额外信息

今天,我的应用程序在分配图像时在Windows上抛出“不再有句柄”错误。要对此进行调试,我很想获得我的应用程序已获取的所有句柄的列表。如果可能,甚至使用字体、图像或其他类型,并在我的错误报告中包含这些信息以查看我的应用程序泄漏的位置。我使用Java和SWT,但在这种情况下调用native函数或第三方应用程序来获取信息没有问题。 最佳答案 对于实用程序,请尝试Microsoft的ProcessExplorerSysinternals.这将显示进程字符串、句柄、文件、父进程、线程、线程堆栈等等。

c - 我怎样才能在 C 中获得一个进程句柄而不是它的名字?

我正在WindowsXP上编写程序,试图获取calc.exe的进程句柄。我可以假设用户确实运行了calc.exe,但他可能更改了文件名。即使名称已更改,是否有一个名称可以获取calc.exe进程的句柄?我找到了这个答案,但它不处理顽皮用户更改名称(例如更改为calc_new.exe)的情况:HowcanIgetaprocesshandlebyitsnameinC++?我可以使用Win32进程的一些其他属性来查找句柄吗? 最佳答案 您可以使用以下Win32API调用序列执行此操作:使用Spy++或类似工具找到您定位的顶级窗口的类名。调

c++ - 关闭句柄/存储句柄

我有一些事件句柄并将它们添加到列表中。我想知道我是否可以存储这些句柄,关闭本地的,以后仍然使用存储的。例子:std::mapEvents;DWORDOpenSingleEvent(std::stringEventName,boolInheritHandle,DWORDdwDesiredAccess,DWORDdwMilliseconds){HandlehEvent=OpenEvent(dwDesiredAccess,InheritHandle,EventName.c_str());//LocalHandle.if(hEvent){DeleteSingleEvent(EventName)

c# - 如何在单击鼠标的应用程序中找到控件的窗口句柄

我正在编写一个C#应用程序。我正在寻找一种方法,只需提供鼠标单击的坐标(或任何坐标)即可在其他应用程序中找到控件的窗口句柄。示例:在我的桌面上,我打开了计算器应用程序、打开了记事本并运行了一些其他第3方应用程序。屏幕被他们每个人部分覆盖。现在,如果我运行我的应用程序并单击屏幕上的任何位置,我希望能够找出鼠标下控件(按钮、文本框、标签、选项卡、框架等)的窗口句柄,无论是否它是在计算器中的按钮、记事本中的文件菜单或第3方应用程序中的某些其他控件上单击的。它类似于我们从Spy++获得的功能。 最佳答案 顺便说一句,这有alreadybee

Windows 权限,在不是管理员时获取 .dll 的句柄,不确定

好的,我正在学习WindowsAPI以及如何创建线程/进程和获得调试权限等。非常新,如果这是一个愚蠢的问题,我深表歉意。无论如何,我正在创建一个.dll注入(inject)器来玩,并且已经成功地能够注入(inject)32位和64位进程,包括通过注入(inject)我的.dll文件的explorer.exe。但是,我试图在标准用户模式下对此进行测试,但在弄清楚如何进行时遇到了问题。现在我正在为.dll和injector.exe编译为x64。我正在尝试注入(inject)x64进程,主要是explorer.exe(适用于管理员)。使用VisualStudio2012,进行了一些优化,没有

windows - 为什么 WmiPrvSE.exe 持有我进程的作业对象的句柄?

我有一个生成多个子“工作进程”的.NET应用程序。我正在使用Windows作业对象API和JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE设置来确保在父进程终止时子进程总是被杀死。但是,我观察到许多孤立进程在父进程关闭后仍在机器上运行。使用ProcessExplorer,我可以看到它们仍然正确分配给作业,并且作业配置了正确的“作业关闭时终止”设置。JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE的文档指出:“当作业的最后一个句柄关闭时,导致与该作业关联的所有进程终止。”这似乎意味着Job的句柄在某处仍然打开...我搜索了我的Job对象的句柄,并在

c++ - Cygwin:打开句柄时删除文件

我有一个我想删除的文件,它的句柄由系统进程持有,所以每次我尝试删除它时它都会显示Accessdenied但出于某种原因cygwin能够删除它。我下载了coreutils并查看了rm可执行文件的源代码,发现它使用unlink函数来实现它。我创建了一个使用相同功能的小测试程序,但它仍然给我Accessdenied。然后我找到了这个article那个家伙描述了cygwin如何能够删除以下文件:Cygwinopensfilesalwayswithallsharingflagsset,soafileopenedbyaCygwinprocessshouldnotresultinasharingvi