草庐IT

c++ - 外部限制程序帧率

试图找到一种方法,以类似于VSync的方式从外部限制程序/游戏的帧率,但限制为指定的数字(而不是屏幕刷新率)。在FRAPS中可以看到我的目标的一个完美示例,当录制视频时,帧速率限于录制速率。原因是对于图形密集度不高的快节奏游戏来说,可以阻止帧率大幅变化引起的“屏幕滞后”,但是VSync不适合,因为奇怪的是它会增加键盘/鼠标之间的延迟(两者都以高速率轮询,所以不是硬件问题)。理想情况下寻找C/++中的一些建议,老实说不知道从哪里开始。 最佳答案 我不确定你是否明白你在问什么。FPS游戏的运行方式是,先绘制屏幕,​​处理键盘/鼠标等操作

c - 可以采用大于 255 个字符的路径的 Windows 全路径 API 的替代方案!

windows的_fullpathAPI取相对路径,给出对应的绝对路径。但是,如果相对路径大于255个字符,它将失败。在Windows中有没有其他API可以将相对路径转换为绝对路径并且不存在上述问题? 最佳答案 我认为最接近的是GetFullPathNamefunction.您可以显式调用它的Unicode版本并将\\?\添加到路径以允许超过MAX_PATH个字符。 关于c-可以采用大于255个字符的路径的Windows全路径API的替代方案!,我们在StackOverflow上找到一个

c++ - 在 Windows 上安装 C/C++ 库

我现在正在学习(好吧,正在尝试)C,但我仅限于在WindowsXP中工作。我已经设法设置并学习了如何使用Emacs,并且可以使用gcc(至少来自Emacs!)编译简单的C程序,但我已经到了想要安装SDL之类的东西来玩的地步用它。问题是SDL的安装说明表明,在使用MingW的Win32环境中,我需要使用MSYS运行./configure和make/makeinstall来安装SDL,就像在Linux上一样。我注意到,当我解压缩SDL-dev包时(忘记了确切的名称,抱歉)那里有与MinGW目录中的文件夹相对应的文件夹(SDL/include->MinGW/include)。我说的所有./c

c - 用/替换许多文件的脚本是什么样的?

是的,这是一个非常懒惰的问题,但我认为这是人们经常遇到的问题,以至于这里有人已经写了一些东西可以分享。我有大量C文件,其中包含使用Windows相对路径的#include语句。我正致力于在其他操作系统上编译代码(立即在我的OSX开发机器上),并且需要在这些include语句中将所有反斜杠替换为正斜杠。因此,从#include"libs\helper.h"到#include"libs/helper.h"。 最佳答案 sed'/^[]*#[]*include/s:\\:/:g'这应该非常健壮,因为它应该捕获#include的任何合法格式

c - 如何检查程序是否已在当前登录 session 期间执行? ( Windows )

在我正在开发的一个应用程序中(用C语言),在执行主应用程序之前必须先运行一个加载器应用程序。我已经做到了,因此主应用程序在启动时将加载器应用程序作为子应用程序运行,以便自动执行此任务。这一切都很好,除了加载器应用程序只需要在用户当前登录session期间运行一次以使主应用程序正常工作,并且每次主应用程序执行时都必须运行它是一个真正的痛。所以我要问的是:有没有办法检查加载程序是否已经使用某些Windows或C功能运行?理想情况下,这样的事情会很棒,虽然我不知道它是否可能:if(thisapp.exehasBeenExecuted)return;elsespawnl(app_path,ap

c - 持续的虚拟内存增加是否表明内存泄漏?

进程的虚拟内存(私有(private)字节)持续增加是否表明内存泄漏...?我正在使用第三方库。不断使用库导致虚拟内存不断增加。所以它是内存泄漏,可能导致虚拟内存不断增加,也可能是任何其他原因。 最佳答案 我们说不准。一些应用程序在您使用它们时自然会增加内存大小。想一想文字处理器——它的内存使用量会随着您的书写而增加。但是您应该对自己的应用程序的内存使用模式有一个很好的了解,所以您应该能够自己回答这个问题。 关于c-持续的虚拟内存增加是否表明内存泄漏?,我们在StackOverflow上

c++ - ctrl+alt+del 禁止在window操作系统中使用c

如何在Window操作系统中使用C禁用ctrl+alt+del?我试过了SystemParametersInfo(SPI_SETSCREENSAVERRUNNING,true,&bOldState,0);但它对我不起作用。您能否指导我,以便我可以实现。 最佳答案 您使用的SPI_SETSCREENSAVERRUNNING参数是为Windows95上的屏幕保护程序设计的。它适用于Windows95/98/ME及更早版本。它不适用于WindowsNT/2000/XP/Vista。Ctrl-Alt-Del热键组合可以在WindowsNT/

c - 有什么方法可以使用 getaddrinfo() 和 freeaddrinfo() 并且仍然是与旧版 Windows 兼容的程序?

在Winsock2库中,getaddrinfo()和freeaddrinfo()仅在WindowsXP及更高版本中添加。我知道如何在遗留系统中替换它们,但根据Windows版本有条件地使用将无济于事。应用程序不会在9x中启动,并显示一条消息说它链接到WS2_32.dll中丢失的导出。我正在使用MinGW编译和链接代码,并希望继续使用它。也许自己写那些函数?非常感谢你所做的一切。 最佳答案 您可以使用LoadLibrary和GetProcAddress来(尝试)获取getaddrinfo和freeaddrinfo的地址,然后通过指针调

c - 哪个套接字,clientSocket = accept() 或 listen(socket),你设置了 sockopt SO_KEEPALIVE?

哪个套接字,clientSocket=accept()或listen(socket),您将sockoptSO_KEEPALIVE设置在哪个套接字上以使与客户端的连接不断开? 最佳答案 在每个接受的套接字上设置选项似乎是最可靠和可移植的。跨accept的非阻塞模式继承在不同实现之间是不一致的,SO_KEEPALIVE对监听套接字没有任何意义。 关于c-哪个套接字,clientSocket=accept()或listen(socket),你设置了sockoptSO_KEEPALIVE?,我们

c - 应用程序是否可以从另一个应用程序获取窗口的所有权?

基本上,我有两个按顺序运行的应用程序(第二个由第一个启动,第一个紧接着退出。)我想将第一个应用程序创建的窗口的所有权传递给第二个应用程序。窗口的实际内容不需要传递,它只是由DirectX绘制。或者,但不太理想的是,是否可以至少禁用窗口关闭/打开动画,这样至少看起来达到了预期的效果?(这是在C中,使用vanillaWin32API。) 最佳答案 创建一个DLL,而不是单独的应用程序,它将由第一个应用程序加载并在其中运行。 关于c-应用程序是否可以从另一个应用程序获取窗口的所有权?,我们在S