草庐IT

c++ - 在 WinNT.h 中,为什么 STANDARD_RIGHTS_READ、...WRITE 和...EXECUTE 定义为相同?

我正在做一些Win32互操作。东西,在搜索标题并仔细阅读MSDN并在快乐的泡沫中定义常量和dll导入时,我在WinNT.h中发现了一些奇怪的行(我的版本中的第6486-6488行......呃......7.1a,我想想)#defineSTANDARD_RIGHTS_READ(READ_CONTROL)#defineSTANDARD_RIGHTS_WRITE(READ_CONTROL)#defineSTANDARD_RIGHTS_EXECUTE(READ_CONTROL)我盯着它看了一会儿,喝着茶,想知道为什么这三个常量都被定义为相同的值。这很有趣。有人知道吗?

c++ - 处理 Winnt.h 的奇怪编译错误

尝试通过windows.h编译包含winnt.h的文件时,出现以下错误:MyGl.cpp..\microsoftsdks\windows\v6.0a\include\winnt.h(964):errorC2988:unrecognizabletemplatedeclaration/definition..\microsoftsdks\windows\v6.0a\include\winnt.h(964):errorC2059:syntaxerror:'&'TheypointtothefollowinglinesinWinnt.hextern"C++"//templatescannotbe

c++ - 什么是 _WIN32_WINNT,它是如何工作的?

编辑2:好的,所以我更改为包含“winnt.h”的OrwellDevC++,其中包含#defineKEY_WOW64_64KEY0x0100但它仍然无法正常工作。(引用编辑1:)编辑1:我查看了CodeBlock和DevC++中的“winnt.h”,而DevC++缺少以下几行:#if(_WIN32_WINNT>=0x0502)#defineKEY_WOW64_64KEY0x0100#defineKEY_WOW64_32KEY0x0200#endif而把上面的代码放在DevC++的wint.h中是不行的。原帖:我有一个32位应用程序(在DevC++和Windows764位中开发),它读取

windows - windows.h 中的 WINVER 和 _WIN32_WINNT 守卫发生了什么?

在UsingtheWindowsHeaders,Microsoft声称_WIN32_WINNT和NTDDI_VERSION可用于防止为较新版本的Windows定义API函数。然而,这似乎并不普遍。例如,CancelSynchronousIo需要Vista或更高版本,但在我拥有的两个版本的WindowsSDK(v6.0和v7.1)中完全不protected。WINBASEAPIBOOLWINAPICancelIoEx(__inHANDLEhFile,__in_optLPOVERLAPPEDlpOverlapped);与此同时,GetVolumeInformationByHandleW,它

c# - 获取 WinNT 组的成员列表

在堆栈溢出上有几个类似的问题,但不完全相同。我想在winxp计算机上打开或创建一个本地组,并向其中添加成员、域、本地和众所周知的帐户。我还想检查用户是否已经是成员(member),这样我就不会添加同一个帐户两次,并且可能会出现异常。到目前为止,我开始将DirectoryEntry对象与WinNT://提供程序一起使用。一切顺利,但我一直在思考如何获取群组成员列表?有人知道怎么做吗?或者提供比使用DirectoryEntry更好的解决方案? 最佳答案 好吧,花了一些时间,弄乱了不同的解决方案,但下面给出了最适合我的原始问题的解决方案。

c# - 获取 WinNT 组的成员列表

在堆栈溢出上有几个类似的问题,但不完全相同。我想在winxp计算机上打开或创建一个本地组,并向其中添加成员、域、本地和众所周知的帐户。我还想检查用户是否已经是成员(member),这样我就不会添加同一个帐户两次,并且可能会出现异常。到目前为止,我开始将DirectoryEntry对象与WinNT://提供程序一起使用。一切顺利,但我一直在思考如何获取群组成员列表?有人知道怎么做吗?或者提供比使用DirectoryEntry更好的解决方案? 最佳答案 好吧,花了一些时间,弄乱了不同的解决方案,但下面给出了最适合我的原始问题的解决方案。

c++ - _WIN32_WINNT 宏,适用于 win7 和 winxp

我正在Windows7上使用VS2012开发我的代码。它必须在Windows7和XP上运行。如果我按如下方式设置_WIN32_WINNT宏,我的代码可以在Windows7和XP上运行吗:#define_WIN32_WINNT0x0601? 最佳答案 此处描述了_WIN32_WINNT定义http://msdn.microsoft.com/en-us/library/6sehtctf.aspx这意味着当你#include仅提供了以_WIN32_WINNT数字表示的Windows版本中可用的函数原型(prototype),因此是静态链接

c++ - NTDDI_VERSION 设置与 _WIN32_WINNT 设置冲突

使用VS2010我有这个错误:errorC1189:#error:NTDDI_VERSIONsettingconflictswith_WIN32_WINNTsetting在StdAfx.h中使用:#define_WIN32_WINNT0x0502在我使用的其他源my.cpp中:#defineNTDDI_VERSION0x06000000我该如何解决? 最佳答案 #defineNTDDI_VERSION0x06000000那就是Vista。#define_WIN32_WINNT0x0502那是Server2003。因此这些版本确实存在

java - java.library.path 中的 org.hyperic.sigar.SigarException : no sigar-amd64-winnt. dll

我的测试程序的依赖项是org.fusesource.sigar,我还在我的类路径中添加了sigar-1.6.4.jar。我知道将sigar-amd64-winnt.dll添加到我的类路径可能会有所帮助,问题是我在哪里可以找到这个文件?我已经搜索过,甚至尝试下载它,但都没有成功。非常感谢您在这方面的帮助org.hyperic.sigar.SigarException:nosigar-amd64-winnt.dllinjava.library.pathatorg.hyperic.sigar.Sigar.loadLibrary(Sigar.java:172)atorg.hyperic.sig

c++ - winnt.h 中大写 VOID 宏和 INT typedef 的用途

有人知道为什么在winnt.hheader中定义了一个大写的VOID宏吗?更令人困惑的是,VOID是一个宏,而CHAR、SHORT、INT和LONG是类型定义。请参阅winnt.h中的相关摘录:#ifndefVOID#defineVOIDvoidtypedefcharCHAR;typedefshortSHORT;typedeflongLONG;#if!defined(MIDL_PASS)typedefintINT;#endif#endif使用VOID*pointer而不是void*pointer可能是历史原因?编辑:更令人不安的是,今天.您还可以将其视为MSDN文档的一部分,例如htt