草庐IT

c - 如何在windows中检查WriteFile之前是否有足够的空间?

hPipe=CreateNamedPipe(lpszPipename,//pipenamePIPE_ACCESS_DUPLEX,//read/writeaccessPIPE_TYPE_MESSAGE|//messagetypepipePIPE_READMODE_MESSAGE|//message-readmodePIPE_WAIT,//blockingmodePIPE_UNLIMITED_INSTANCES,//max.instances100,//outputbuffersize100,//inputbuffersize0,//clienttime-outNULL);//defaul

c - Ncurses - 多窗口和刷新

我正在编写一个小型学校项目。这是一个单词下降游戏-单词从顶部移动到底部。我有一个想法,制作两个窗口(一个带有界面,第二个带有移动对象)。正如您在代码中看到的那样,单词是随机的。问题是输入。我正在使用mvwsacanw来写这个词。当单词在不同的窗口中移动时,有没有办法在第二个窗口中写任何东西?现在这个词正在下降,当它到达底部时,第二个窗口打开,我可以输入这个词。希望有人能帮助我。#include#include#include#include#includevoidmoving(WINDOW*move){intj,random;char*cmp=(char*)malloc(10*size

c++ - CRITICAL_SECTION 用于设置和获取单个 bool 值

现在写复杂的class,感觉用了很多CRITICAL_SECTION。据我所知,某些类型有原子操作,它们总是在没有任何硬件或软件中断的情况下执行。我想检查一下我是否理解正确。要设置或获取原子值,我们不需要CRITICAL_SECTION,因为那样做不会有中断。bool是原子的。所以有我的陈述,想问一下,如果它们是正确的,如果它们是正确的,没有CRITICAL_SECTION也可以设置或获取什么类型的变量?P.S.我说的是获取或设置每个方法一个值,不是两个,不是五个,而是一个。 最佳答案 您不需要为原子数据加锁,但在内部它们可能会加锁

纯C语言写的彩色爱心代码

 这是一款纯用C语言写的爱心代码,显示爱心时每显示一行的颜色都不一样,完整的代码如下:#include//预处理包含头文件#include  color(intx)//函数,这个只有正整数可以产生颜色,小数,负数都是原来的字{   SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);//(改色)}main() //函数头(名字:主函数,main函数) {printf("\n\n");color(7);   printf(" XXXXXX   XXXXXX  \n");color(2);printf(" XXXXXXXXX XXX

c - 如何获取每个进程的 GPU 使用率?

我有一个前段时间写的温度监控程序,它监控我的AMD显卡上的温度和风扇,检查风扇故障或过热。它的问题是,它需要提前知道哪个进程将使用GPU(图形处理单元),以便杀死它或优雅地停止它以避免过热。为了使我的程序更具动态性,我需要一种方法来查找哪个进程正在使用GPU,就像哪个进程正在使用CPU时间(任务管理器)一样。一个这样的应用程序是来自SysInternals的ProcessExplorer。我在问,我如何在C中的Windows中执行此操作?我知道如果有这样的方法,它将针对Vista及更高版本。 最佳答案 如果您有Tesla开发板或高端

c++ - 堆栈独立的 c/c++ 蓝牙 api?

我想知道是否有适用于Windows(XP、Vista、7、x86和x64)的独立于堆栈的C/C++蓝牙API。我的目标是创建连接并通过蓝牙发送/接收一些时间关键数据。我的研究为我提供了以下选项,但对于这项任务而言存在劣势:Windows蓝牙套接字仅适用于微软蓝牙堆栈使用COM端口(CreateFile/ReadFile/...)比套接字选项慢,用户必须先连接到设备。使用依赖于堆栈的API这将需要检测使用的堆栈并为每个堆栈创建读/写函数。非常耗时,我不知道是否有可能支持所有堆栈编写KMDF驱动程序我考虑编写一个功能驱动程序来直接与应该独立于堆栈的蓝牙HCI驱动程序对话。这将非常耗时,因为

c++ - 您如何试用小型/简单的 C 或 C++ 源代码?

在Linux上启动vi并编写100-200行代码、编译并查看结果非常容易:即。尝试C/C++代码的简单小示例。然而,在Windows上,我喜欢VisualStudio,但要使用它,你必须创建一个新的解决方案,然后创建一个项目,然后创建一个新文件夹,生成非常大的PDB和缓存文件,一个100-200LOC的小例子变成了20Mb编译后的大型项目(?!)。那么问题来了,在windows上怎么写这种小代码呢?可能是Cygwin或Dev-C++(自2004年以来不活跃?)。 最佳答案 您可以使用cl.exe从命令行编译。请参阅MSDN文章How

c - Windows 操作系统中 Code::Blocks 编辑器中对 fork() 的 undefined reference

当我在Windows操作系统的Code::Blocks中运行以下代码时。我曾经收到一个错误,称为对fork()的undefinedreference。我确实设置/选择了GCC编译器作为我的默认编译器。#include#includevoidmain(){intx;x=0;fork();x=1;.......}请帮我看看,我可以在windows环境下对Code::Blocks中的unix/linux程序进行正确处理吗?然后我写另一个程序,main(){intx=0;if(x==0){printf("X=%d",x);sleep(1000);//useddelayalsox=1;print

c++ - 在 memset 等上使用结构初始化 ({...}) 是否更可取/可以?

代码:WINDOWPLACEMENTwplcmt={sizeof(WINDOWPLACEMENT)};看起来比下面干净多了:WINDOWPLACEMENTwplcmt;memset(&wplcmt,0,sizeof(WINDOWPLACEMENT));wplcmt.length=sizeof(WINDOWPLACEMENT);这个东西的汇编输出也很不错,对于更长的结构,MSVC甚至使用memset而不是xoreax,eax和mov的。从标准的角度来看,它看起来也不错。但我仍然害怕结构未紧密包装的边界情况,比如#pragmapack(128),Windows突然决定对该结构进行memcm

c - 如何获取基栈指针的地址

我正在将应用程序从x86移植到x64。我正在使用VisualStudio2009;大多数代码是C++,一些部分是纯C。向x64编译时不支持__asm关键字,我们的应用程序包含一些内联汇编程序。我没有写这段代码,所以我不知道et应该做什么:intCallStackSize(){DWORDFrame;PDWORDpFrame;__asm{movEAX,EBPmovFrame,EAX}pFrame=(PDWORD)Frame;/*...dostuffwithpFramehere*/}EBP是指向当前函数栈的基指针。有什么方法可以不使用内联asm来获取堆栈指针吗?我一直在研究Microsoft