草庐IT

c++ - 确定哪个编译器构建了 Win32 PE

如何确定使用哪个C或C++编译器来构建特定的Windows可执行文件或DLL?一些编译器会在最终的可执行文件中留下版本字符串,但这在Windows上似乎比在Linux上更罕见。具体来说,我感兴趣的是区分VisualC++和各种MinGW编译器(通常从函数签名来看相当容易),然后区分VisualC++版本(6、2002/2003、2005、2008;更难做到).是否有一种工具可以以半可靠的方式进行区分? 最佳答案 区分VC版本的提示来源之一是链接的特定C运行时库。由于默认情况下(至少在现代版本中)链接到DLL,因此这很容易做到。该实用

c++ - win32 api函数获取处理器的当前速度

我不知道用于查询本地PC处理器当前速度的win32api函数。我不希望使用WMI,因为它似乎不太可能在所有PC上都可行。 最佳答案 您可以调用WindowsAPI函数CallNtPowerInformation使用参数ProcessorInformation。它返回PROCESSOR_POWER_INFORMATION结构,告诉您系统每个CPU的当前和最大CPU速度。不过,这仅在Win32桌面上受支持,Metro或WindowsPhone不受支持。 关于c++-win32api函数获取处

c++ - 改变音量 win32 c++

我将如何在C++win32中改变音量?另外我将如何静音/取消静音?感谢您的帮助! 最佳答案 使用waveOutSetVolumeAPI。这是一个例子:DWORDdwVolume;if(waveOutGetVolume(NULL,&dwVolume)==MMSYSERR_NOERROR)waveOutSetVolume(NULL,0);//mutevolume//laterpointincode,tounmutevolume...waveOutSetVolume(NULL,dwVolume);

c++ - 网络游戏作弊: Is it possible to prevent one Win32 process from inspecting/manipulating another's memory?

我玩在线游戏《魔兽世界》,该游戏受到自动机器人的困扰,这些机器人检查游戏的分配内存以读取游戏/玩家/世界状态信息,这些信息用于机械地玩游戏。他们有时也会直接写入游戏的内存本身,但据我所知,更复杂的不会。该游戏的供应商BlizzardEntertainment有一个名为Warden的单独应用程序,它应该可以检测和禁用类似的黑客和作弊行为,但它并不能捕获所有内容。是否可以制作一个Windows应用程序,让您是唯一一个可以将您读入内存的内容读入内存的应用程序?在数百万台机器上运行的大型C++应用程序上实现这种做法是否实用? 最佳答案 做不

c++ - 拖动时保持窗口事件(Win32 上的 SDL)

首先,我的代码设置了SDL环境,并继续更新OpenGL上下文,而没有执行任何SDL_Event处理。这会导致窗口,只要它是打开的,在Windows看来是没有响应的。窗口闪烁了一下。标题栏会附加“(NotResponding)”,在窗口内单击时它会变灰,因为Windows默认在非响应窗口上执行此操作。然而,在这种状态下(即使在它变灰时和之后),OpenGL显示继续更新和动画,这就是踢球者,它甚至在拖动窗口时这样做。很明显,在这种情况下,应用程序没有正确处理来自Windows的事件,导致Windows认为它​​处于挂起状态。但是有明确的证据表明opengl继续呈现。现在我对代码进行了一次修

c++ - 我可以从 Visual Studio 即时窗口调用 Win32 API 吗?

我正在调试C++Win32应用程序,我想从该进程的上下文中调用任意Win32API,就好像程序运行了这行代码一样:DestroyWindow(0x00021c0e);但是将其输入立即窗口会给出:CXX0017:Error:symbol"DestroyWindow"notfound编辑:使用函数的全名,{,,user32.dll}_NtUserDestroyWindow@4,我可以获得立即窗口以了解我指的是哪个函数并显示函数的地址:{,,user32.dll}_NtUserDestroyWindow@40x76600454_NtUserDestroyWindow@4但是当我尝试调用它时,

c++ - 如何使用visual c++在win32 API中添加图片框

我在VisualC++中有一个Window(win32API)应用程序。我没有使用MFC。我必须向我的应用程序添加一个图片框并定期更改此图片框的图像。任何人都可以帮助我完成上述任务吗?提前致谢。 最佳答案 在此处发布完整代码是一项相当复杂的任务,但我将尝试提供一些有关如何执行此操作的指南:第一种方法是加载图像并绘制它加载您的图像(不幸的是,普通的Win32API支持相当多的图像格式BMP、ICO...)。HBITMAPhImage=(HBITMAP)LoadImage(NULL,(LPCSTR)file,IMAGE_BITMAP,0

C++ Win32 API 离线文档?

我正在学习使用C++的win32应用程序。我有一个很好的API引用,但它是1997年的。是否有更现代的版本可供下载?我的连接很糟糕,所以我希望它可以完全离线访问。类似于chm或hlp文件的东西...可搜索并且是最新的。 最佳答案 如果安装WindowsSDK,它还附带所有文档。虽然下载量巨大,但至少您可以一次性完成。 关于C++Win32API离线文档?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com

c++ - 我的 win32 程序应该在哪里保存它的文件?

我们的win32应用程序(用C++编写)已经存在了10多年,并且在保存文件的位置方面没有更新以遵循“良好做法”。应用程序默认安装在“C:\AppName”文件夹中,并将应用程序生成的文件、配置文件、下载的文件和保存的用户文档保存在该文件夹的子文件夹中。据推测,如今默认安装在“c:\ProgramFiles\AppName”下是“最佳实践”。但是如果我们这样做,我们应该把其余的文件放在哪里呢?从Vista开始,写入程序文件文件夹是有问题的,而且似乎还有一百万个其他地方可以放置不同的文件,我很困惑。有什么地方的引用吗?编辑:扩展人们迄今为止提出的问题:我熟悉SHGetFolderPath函

c++ - Win32 中原生 C/C++ 的高级 HTTP 客户端库

在Win32中是否没有用于nativeC/C++的“高级”HTTP库,或者我只是找错了地方?我所说的“高级”是指一个API,它允许我在C++中执行HTTPWeb请求/响应,其抽象级别与.NET框架“大致相同”(但请注意,使用C++/CLI不是我)。如何在不使用.NET的情况下在Win32中的C/C++中执行类似的操作(使用大约相同数量的代码)?作为引用,我提供了一个代码示例来展示我将如何在C#中执行此操作。byte[]fileBytes=null;boolsuccessfulDownload=false;using(WebClientclient=newWebClient()){Web