我的印象是,如果一个应用程序有一个打开的句柄并且它崩溃了,句柄不会被释放,如果您尝试访问该句柄(比方说一个文件),那么您将收到错误。但是,我已经在WindowsXP及更高版本中尝试过此操作,如果我从任务管理器中关闭exe,则句柄似乎会在它关闭句柄之前释放。以下是代码:PrivateSubForm_Load()DimiFileAsIntegeriFile=FreeFileOpen"myfilelock"ForOutputLockReadWriteAs#iFileMsgBox"Abouttoclose"'closeitherewithtaskmanagerClose#iFileEndSub
我有父进程和子进程,在父进程中我声明句柄将被继承,如http://msdn.microsoft.com/en-us/library/windows/desktop/ms724466%28v=vs.85%29.aspx:...SECURITY_ATTRIBUTESsa;sa.nLength=sizeof(SECURITY_ATTRIBUTES);sa.bInheritHandle=TRUE;sa.lpSecurityDescriptor=NULL;//CreateapipefortheParentprocess'sSTDOUT.if(!CreatePipe(&hChildReadPipe
当我在只读文件上使用我的Delphi6应用程序中的WindowsAPI调用GetFileSizeEx()时,我收到操作系统错误代码6(“无效文件句柄”)。如果我从文件中删除只读属性,错误就会消失。为什么我会收到该错误,有没有办法对只读文件使用该调用或类似调用?相关代码如下:functionGetFileSizeEx(hFile:THandle;varFileSize:Int64):BOOL;stdcall;external'kernel32.dll'name'GetFileSizeEx';functioneasyGetFileSize(theFileHandle:THandle):In
语言:C操作系统:Windows我的应用程序是用nt级别的api构建的,必须操作文件和目录句柄。在Zwopenfile或zwcreate文件上,我得到一个HANDLE作为结果。通常HANDLE的值类似于0x00000024、28,2c...等。当我将其转换为LPBYTE以查看内容时。VisualStudio显示“无法评估表达式”。我了解到从创建/打开文件api返回的HANDLE不是指向内存位置的指针。但是,Windows使用该值并执行文件操作。Ntquerydirectory对象为我提供了有关句柄的信息。然而,Windows是如何实现这个功能的还不得而知。任何人都可以阐明它。
在测试应用程序稳定性时,我试图删除/损坏应用程序使用的数据库。操作系统是Windows,文件系统是NTFS,测试语言是C++。我需要的是将任何内容粘贴到数据库文件中或将其删除。但它在运行期间被测试的应用程序锁定。所以也许有人以前遇到过这种情况,你可以给我/我们一个例子,说明绕过测试代码中的这种锁定的可能方法吗?理论或来源-感谢您提供任何帮助。 最佳答案 #include#include#include#include#include#include#include#include#include#defineSTART_ALLOC0
如果我有一些已停止(终止或刚刚结束)的Windows进程的句柄:句柄(或者更好的是它背后的内存)是否会被另一个进程重新使用?或者从现在开始,GetExitCodeProcess()等方法会永远得到正确的结果吗?如果1.为真:GetExitCodeProcess()工作“多长时间”?如果2.为真:这是否意味着我可以通过启动/终止新进程来关闭操作系统,因为我创建了越来越多的句柄(并且操作系统为它们保留了内存)?我对句柄的概念有点困惑。提前致谢! 最佳答案 句柄间接指向一个内核对象。只要有打开的句柄,该对象就会保持事件状态。Willthe
在一个for循环中有一个CreateThread()调用,我希望所有的线程依次启动,每个线程向一个对象写入数据。`$while(ii!=mapOServs.end()){Array_of_Thread_Handles[i]=CreateThread(NULL,0,MyThread,&args[i],0,NULL);}但线程只有在遇到WaitForMultipleObjects或WaitForSingleObject时才会启动。如何在不等待响应的情况下让所有线程依次运行?另外,最好使用什么对象,以便它可以同时被不同的线程修改。 最佳答案
在网页上的文件输入元素中单击浏览按钮时弹出的“选择要上传的文件”窗口。是否可以使用ShowWindow等user32lib函数隐藏/调整此“选择要上传的文件”窗口的大小。我尝试通过提供句柄来使用ShowWindow“选择要上传的文件”窗口但它不起作用。可以在这个窗口上工作吗?如果是,我该怎么做? 最佳答案 作为替代方案,您可以尝试http://www.plupload.com/无需打开文件选择器窗口,而是使用HTML5或Flash上传。 关于windows-是否可以调整/隐藏窗口标准对话
我正在努力通过Minidump(DbgHelp.h)获取句柄信息。我正在从映射文件流中获取MINIDUMP_HANDLE_DESCRIPTOR_2列表。然后,我通过使用ObjectInfoRva字段为每个描述符获取一个MINIDUMP_HANDLE_OBJECT_INFORMATION。但是我无法理解这个MINIDUMP_HANDLE_OBJECT_INFORMATION结构给我提供了什么信息,我在网上找不到任何例子来从MINIDUMP_HANDLE_OBJECT_INFORMATION中提取有意义的信息,并且文档不是很有用。如何使用MINIDUMP_HANDLE_OBJECT_INF
我正在构建一个Win32GUI应用程序。在该应用程序中,我使用了一个旨在用于命令行应用程序的DLL。假设Foo.exe是我的GUI应用程序,而bar()是DLL中的一个函数,它将“hello”打印到标准输出。Foo.exe调用bar()。如果我从命令行运行Foo.exe,重定向(>)(即Foo.exe>out.txt),它将“hello”写入out.txt并正常退出(如预期的那样)。但是,如果我运行Foo.exe而不重定向(从cmd.exe或通过在Windows资源管理器中双击),它会在调用bar()时崩溃。如果我在调试器中运行Foo.exe,在命令行中使用重定向(通过项目的VS属性设