草庐IT

c++ - 使用 gcc c++ 获取 Windows 版本

我确定这个问题有点奇怪,但我使用的是Code::Blocks和GCC。要在我的项目中使用某些特定功能,我需要确定用户计算机上安装的是哪个版本的Windows。对于VS2013/15,我们可以使用VersionHelpers.h和IsWindowsXXXOrGreater()。但是GCCC++呢? 最佳答案 您仍然使用VersionHelpers.h,即使使用GCC或Clang或其他编译器。这些函数与VisualC++无关。它们是WindowsSDK的一部分,所有Windows应用程序都必须使用它。您可以downloadtheWind

c++ - 使用 SID 获取 LocalGroup Windows C++ 的名称

我正在尝试根据组的SID获取组名。例如,本地管理员组的SID是S-1-5-32-544。我使用函数ConvertStringSidToSid和LookupAccountSid获取组管理员的名称,但函数返回0。对此有何建议?#ifndefUNICODE#defineUNICODE#endif#include#include#include#include#include#include#include#include#include#pragmacomment(lib,"netapi32.lib")#pragmacomment(lib,"Advapi32.lib")staticconst

c++ - 在 C++ 中运行外部应用程序的回调

我正在开发一个Kinectv2应用程序,该应用程序有时会执行一个也适用于Kinectv2的外部Unity迷你游戏。我正在使用ShellExecute函数,但我不确定如何实现在Unity应用程序关闭后通知主应用程序的回调。我需要它是因为我想在Unity运行自己的Kinect管理器后在主应用程序中暂停它(否则你可以想象两个Kinect管理器将同时运行)。现在的代码如下所示:if(Button->getTag()=="something"){Button->SetActive(false);//TODOPauseKinectmanagerShellExecute(nullptr,L"open

c++ - 正确使用 Windows 控制台 API 的 CHAR_INFO 结构

控制台函数的WindowsAPI部分wincon.h定义了一个数据结构CHAR_INFO如下:typedefstruct_CHAR_INFO{union{WCHARUnicodeChar;CHARAsciiChar;}Char;WORDAttributes;}CHAR_INFO,*PCHAR_INFO;所以我们有一个8位和16位字符的并集,分别表示ASCII和Unicode字符。通常,如果你必须处理C中的union,你会标记union,即存在一个额外的字段,指示正在使用union的哪个字段。这里不是这种情况(Attributes用于不同的东西),所以我想知道如何正确使用这种数据类型的值

c++ - 如何在 VCL 应用程序中处理已发布、已注册的 Windows 消息?

我有一些低级库代码,我希望能够广播一些自定义窗口消息。在库代码中,定义了以下内容:staticUINTWM_MOTOR_WARNING_MESSAGE=0;extern"C"int_libmain(unsignedlongreason){WM_MOTOR_WARNING_MESSAGE=RegisterWindowMessage("MOTOR_WARNING_MESSAGE");....图书馆正在发送这样的消息://Sendwindowsmessageintret=PostMessage(HWND_BROADCAST,WM_MOTOR_WARNING_MESSAGE,0,0);if(!

c++ - 在 Windows (C++) 的 dirent.h 中找不到 seekdir()

我实际上正在做一个项目,我必须浏览目录,为此我正在使用dirent.h库,因为我不想为此使用Boost。因此我找到了这篇文章invisualstudio2010or2008导致这里http://www.softagalleria.net/dirent.php我在哪里下载并安装了dirent.h。所以安装了dirent.h,我使用opendir、readdir等基本函数没有问题,但是当我想使用seekdir()函数时,它似乎不存在于库中,所以我进入dirent.h来验证我的假设并且(感谢Ctrl+F)确实缺少seekdir。我是不是错过了什么,或者我必须找到一个技巧来获得这个功能....

c++ - 如何查看 Microsoft Windows 10 的(默认)页面大小?

HowdoIseethe(default)pagesizeforMicrosoftWindows10?我想查看我系统的默认页面大小(x64),因为我想知道每次读取操作获取了多少字节。我在哪里可以找到这个数量。我读过一些地方FileAlignment默认设置为512,但我不确定这些东西是否相同。 最佳答案 调用GetSystemInfo,看dwAllocationGranularity 关于c++-如何查看MicrosoftWindows10的(默认)页面大小?,我们在StackOverf

C++ 更改打印队列所有者

我想知道是否可以更改调出打印队列以查看排队的打印机文档时可见的“所有者”名称。我有一个Windows服务,它从用户那里接收文档并将其发送给Windows打印机,并且所有者始终是登录到运行该服务的工作站的用户的名称。我想将“所有者”更改为其他内容,这将在Windows服务加载和使用的C++WindowsDLL中完成。添加8/30/16@9:14amET谢谢你的建议,托马斯。我应该提到我的研究,但它又长又空。MSDN有一个SetJob函数,它可以采用4种结构中的一种(pJob=JOB_INFO_1…JOB_INFO_4)。JOB_INFO_1、2和4有一个LPSTRpUserName,它似

c - 为什么是 'binary access meaningless on UNIX systems' ?

这个问题在这里已经有了答案:Differencebetweenfileswritteninbinaryandtextmode(7个答案)关闭6年前。我正在根据K&R手册学习C。我知道(并读到)fopen调用中的“b”表示二进制访问。该书接着说,这(二进制访问)在UNIX系统上毫无意义。推断是在Windows上有意义。我的问题是,为什么Windows会区分文本和二进制文件,而UNIX却不会。还有,有什么区别?我发现了一些接近回答它的东西,但仍然不太令我满意:Isthereanydifferencebetweentextandbinarymodeinfileaccess?http://pe

c++ - 如何将我的 Qt 应用程序主窗口始终放在 Windows 任务栏上方?

我有一个Qt应用程序,它保留在其他窗口之上。主窗口是无框透明的。为了将它放在其他窗口之上,我遵循了以下过程。SetForegroundWindow((HWND)winId());Qt::WindowFlagsflags=this->windowFlags();flags=flags&~Qt::WindowMinimizeButtonHint;this->setWindowFlags(flags|Qt::FramelessWindowHint|Qt::WindowStaysOnTopHint);ui.setupUi(this);此代码片段将我的Qt主窗口置于所有窗口之上以及任务栏之上。问