草庐IT

c++ - 你应该给 Windows API 调用 VerQueryValue 什么参数

我知道第一个参数必须是GetFileVersionInfo()的结果。第三个和第四个是目标缓冲区和大小第二个参数是什么,lpSubBlock?提前致谢 最佳答案 当您通过资源编辑器查看版本信息时,您可能会注意到有一个包含FILEVERSION、PRODUCTVERISON等的初始部分,然后是一个或多个包含语言特定设置的block。VS_VERSION_INFOVERSIONINFOFILEVERSION5,0,0,0PRODUCTVERSION5,0,0,0FILEFLAGSMASK0x3fL#ifdef_DEBUGFILEFLAG

c++ - 在 Windows 上从服务器端检测 RPC 连接丢失

有没有办法从服务器端检查RPC连接的状态?我正在寻找一种方法来检测来自客户端的连接是否丢失,无论是客户端崩溃还是其他连接问题。 最佳答案 使用ContextHandles用于管理特定客户端调用之间的服务器状态。RPC使用keep-alive来检测客户端断开连接,并在客户端断开连接时执行上下文句柄中断例程。 关于c++-在Windows上从服务器端检测RPC连接丢失,我们在StackOverflow上找到一个类似的问题: https://stackoverflo

windows - 从 32 位应用程序使用 64 位驱动程序

我有一个必须以32位运行的Windows应用程序(因为我无法控制的其他限制)。但是,我的应用程序必须调用和访问可能是32位或64位的驱动程序,具体取决于安装它的系统。我通过DeviceIoControl()调用访问驱动程序,交换包含文件中声明的数据结构。数据结构包含声明为“DWORD_PTR”的字段(我也不控制的包含文件)。我的问题是,在64位系统上,驱动程序希望结构包含64位整数(因为DWORD_PTR声明)。但是,我的32位程序将那些DWORD_PTR视为32位整数。然后,我的数据结构程序版本与驱动程序对这些结构的理解之间存在数据不匹配。DeviceIoControl()最终因ER

c++ - C/C++ USB 驱动器事件

关于Windows平台,我可以查找它们的事件来判断我们何时插入了USB驱动器或任何类型的可移植媒体吗? 最佳答案 如果不先注册,您将不会收到此类通知。使用RegisterDeviceNotification()来做到这一点。在您注册接收此类通知的窗口后,处理WM_DEVICECHANGE消息。 关于c++-C/C++USB驱动器事件,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/

windows - 在本地 NTFS 驱动器上查找回收站

我正在尝试编写一些简单的代码来返回本地驱动器上回收站的目录。看起来很简单——应该是Google上的一千个答案。还没找到:(我发现FAT和NTFS驱动器有不同的基本名称(RECYCLED和RECYCLER)。我发现'the'回收站是一个虚拟文件夹,它结合了机器上所有驱动器的回收站。我还没有找到找到C:驱动器的回收站目录的方法——即使在越南语(或任何其他非英语)机器上也是如此。(我找不到任何帖子表明“RECYCLER”是否国际化)谁能给我一个明确的答案?谢谢更新:了解CSIDL_BITBUCKET和使用它的函数。从我读过的所有内容来看,它指向一个虚拟目录,该目录是该用户在所有驱动器上删除的

windows - GetUserName Win32 API 有什么问题?

我正在使用GetUserNameWin32API来获取我的计算机的用户名,但是当我在家使用VPN连接工作时,我发现用户名不同(仅大写与小写)。我想知道VPN客户端或其他软件是否会影响用户名? 最佳答案 GetUserNameAPI状态:Retrievesthenameoftheuserassociatedwiththecurrentthread.UsetheGetUserNameExfunctiontoretrievetheusernameinaspecifiedformat.Additionalinformationisprovi

windows - 关于Winsock Kernel Buffer和Nagle算法的疑问

阅读时this文章,我有疑问。我了解到,在传输小数据时,默认情况下会启用Nagle算法以合并小数据包。这导致在传输之前缓存一些数据。我相信Winsock内核缓冲区是缓存发生的地方。如果我错了,请纠正我。这是否意味着如果使用SO_SNDBUF选项将Winsock内核缓冲区设置为零,Nagle算法是否会被禁用?如果不是那么WINSOCK在哪里缓存小数据? 最佳答案 您引用的知识库文章以这种方式给出了您的答案...Tooptimizeperformanceattheapplicationlayer,Winsockcopiesdatabuf

c++ - SHGetPathFromIDList() (和类似的)是否在其参数中放置一个终止 0?

这其实是一个关于海量winapi函数的问题。典型的MS文档说(来自http://msdn.microsoft.com/en-us/library/bb762194(VS.85).aspx):BOOLSHGetPathFromIDList(PCIDLIST_ABSOLUTEpidl,LPTSTRpszPath);pidl[in]Theaddressofanitemidentifierlistthatspecifiesafileordirectorylocationrelativetotherootofthenamespace(thedesktop).pszPath[out]Theaddr

windows - 在 Windows C/C++ 中检查文件夹/文件是否被隐藏/系统

我正在使用C++/STL/Boost编写一个跨平台应用程序,我意识到它们没有提供一种方法来检查文件夹或文件是否被隐藏或者是Windows中的系统文件。在C/C++forWindows中执行此操作的最简单方法是什么?理想情况下,我有一个带有路径(文件或文件夹)的std::string,如果它是隐藏的或系统文件,则会返回。最好它适用于所有Windows版本。我也在使用MinGWg++进行编译。 最佳答案 GetFileAttributes将为此工作。它采用文件或目录的路径作为参数,并返回一组标志,包括FILE_ATTRIBUTE_HID

windows - 查找 WndProc 地址

如何找到WndProc的地址(另一个进程的窗口)。即使我注入(inject)一个DLL并尝试使用GetClassInfoEx()或GetWindowLong()或GetWindowLongPtr()找到它,我总是得到类似0xffff08ed的值,这绝对不是可执行地址。根据MSDN:“...窗口过程的地址,或表示窗口过程地址的句柄。”不幸的是,这对我来说不够好,我需要实际地址。Spy++大部分时间都能正确完成工作(但有时也会失败)。所以应该是可以的。谢谢。[编辑:]感谢ChrisBecke为我的小问题提供了超快、正确的解决方案! 最佳答案