草庐IT

c++ - 是否可以修复 Windows 头文件(winnt.h、windefs.h)以便它们可以用/Za 编译?

我正在为多个平台(Windows、Linux、MacOSX)开发应用程序,我想确保我的代码符合ISOC++标准。在Linux和Mac上,它是通过-pedantic-errors标志实现的,在Windows上是通过/Za标志(禁用语言扩展)实现的。问题是,某些Windowsheader不符合C++(并且以一种愚蠢的方式,没有什么大不了的-大多数错误是'$':unexpectedinmacrodefinition,'__forceinline'notpermittedon数据声明和类似的废话)。您认为可以修复header吗?有人试过吗? 最佳答案

c++ - 检测哪个 USB 设备生成了输入

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎不是关于aspecificprogrammingproblem,asoftwarealgorithm,orsoftwaretoolsprimarilyusedbyprogrammers的.如果您认为这个问题是关于anotherStackExchangesite的主题,您可以发表评论,说明问题可能在哪里得到解答。关闭8年前。Improvethisquestion我有2个键盘,我想知道是否可以知道哪个键盘在Windows中生成了输入事件(使用WINAPI)?

c++ - 我应该将分配的内存归零吗?

我正在编程tcp套接字,我正在使用structsockaddr_inserver_addr;来设置端口等。在一些教程中我读到我应该将server_addr的内存清零在使用它之前。我是不是该?是否有可能我会得到一些可能导致问题的数据的内存?linux和windows有什么不同吗?谢谢 最佳答案 如果您不初始化保留内存区域,它将包含之前存储在那里的任何值。因此,将其“归零”始终是一个好主意,这意味着用一些值覆盖曾经存在的内容,在本例中为空字节\0。如果您将malloc替换为calloc,这将自动为您完成。无论您是否这样做,都不会影响您从

c - Windows 上带有 GCC 的 MinGW 误报数值

出于某种原因,每当我在编译器设置中使用数值时(Windows上的MinGW,使用CMD提示编译和运行),它在程序中完全误报数字。代码示例://Chelloworldexample#includeintmain(){intvalue;value=10;printf("Thenumberis%d\n"),value;intvalue2;value2=-100;printf("Thenumberis%d\n"),value2;return0;}比照。screenshotofoutput. 最佳答案 value和value2必须作为参数传递

c++ - WINAPI CreateThread 并不总是运行线程

我正在尝试使用WindowsCreateThreadAPI创建和执行线程。我看到运行该程序会产生不确定的行为。我从程序的输出中看到,线程方法“my”有时会被执行,有时不会。这可能是什么原因?该程序非常简单,如下所示。还有应该用什么初始化dwThreadID。它应该是0还是任何整数值?PS:在VisualStudio中编译。#include"stdafx.h"#include#includeusingnamespacestd;//DWORDWINAPIDWORDWINAPImy(LPVOIDlpParam){for(inti=0;i 最佳答案

c++ - 为什么在我分配该类的两个对象时调用我的构造函数?

我很困惑,如果这是显而易见的,我很抱歉。以下是我错了吗:structMyStruct{MyStruct(){};MyStruct(MyStruct*arg){};}MyStruct(MyStruct*参数){};构造函数是否将一个指向MyStruct的指针作为参数?因为我有一个问题,当我这样做时,这个构造函数(我认为是)被调用了:intmain(){MyStructobj;MyStruct*objPtr;obj=objPtr;return0;}当将obj分配给objPtr时,我希望编译器会提示,但它没有,而是调用MyStruct(MyStruct*arg);我认为这是一个采用指针参数的

c++ - WINAPI 枚举WindowsProc : Non-Standard Syntax; use & to create a point to a member

我在调用EnumWindows(EnumWindowsProc,0)时不断收到错误消息;它将我的BOOLCALLBACKselectionWindows::EnumWindowsProc(HWNDhWnd,longlParam)函数转换为参数。我知道它与类和selectionWindows::有关,但我终究无法弄明白。这是.h#ifndefSELECTIONWINDOWS_H#defineSELECTIONWINDOWS_H#include#include"mainwindow.h"#include#includeclassselectionWindows:publicQWidget{

c++ - Unix <-> Windows C++ 开发工具

我正在做一些C++交叉开发——在Windows上做了一段时间,最近开始在Unix上做。我想我追求的是简化Unix开发体验-我有一个本地Windows框用于开发,还有一个远程Solaris框用于在Unix环境中编译和测试代码。我现在做什么-我在Windows(VC++)上开发、编译和测试代码,完成后,我使用Filezilla通过SSH将代码移动到Solarisbox。我还使用Putty连接到Solarisbox并执行shell命令。因为我是unix开发的新手-我想我所做的并不是最佳的,我使用的工具/技术也不是最佳的。你能给我推荐一个更好的工具吗?如何更轻松地移动代码,并可能替代Putty

c++ - 如何以编程方式在 Windows、Mac 和 Ubuntu 中设置音量?

我想使用C/C++在Windows、Mac和Ubuntu中以编程方式设置音量。命令行也可以,但首选C/C++。提前致谢! 最佳答案 只是提示,在Windows中,围绕音量调整的“理念”在XP和Vista/7之间发生了变化。在XP上更改主音量的代码只会在Vista和7上更改混音器中应用程序特定的音量设置。这是MS音频开发团队之一关于此的一篇很好的博客文章:LarryOsterman'sBlog以下是一些可能有用的代码项目页面:ForXPForVista+此外,这里还有一些关于新API的PowerPoint演示文稿:AMPSummitp

windows - C++ Windows 窗体应用程序是否需要 .NET Framework?

C++Windows窗体应用程序是否需要.NETFramework?它似乎是因为它导入了"System::Forms"但我只想100%确定。我尝试用depends打开它,看起来它导入了通常的C++dll,但没有关于框架的任何信息。 最佳答案 Windows窗体是.NETFramework的一部分,所以是的。如果您不想将.NET框架作为依赖项,则需要使用nativeWin32API或MFC。您还可以使用第三方库,例如Trolltech的Qt。DependencyWalker有一个很好的常见问题解答,涵盖了原因:WillDependen