草庐IT

c - 获取 CPU 型号名称、供应商 ID、Windows C 中的物理处理器数量

我看到了this主题,但我没有提供我需要的所有信息。是否有任何可移植的方式(仅限所有Windows的可移植)来获取cpu型号名称、供应商ID和物理处理器的数量? 最佳答案 您提供的链接适用于Windows的移动版本,因此如果您所说的可移植版本也指桌面版本,那么GetSystemInfo可用于(如所述)Window2000及更高版本的所有版本。如果您需要比这更旧的版本,那么您应该给出一些限制。 关于c-获取CPU型号名称、供应商ID、WindowsC中的物理处理器数量,我们在StackOv

c - Windows 上的 gcc 生成垃圾? Windows 与 Linux

我想找出为什么在Windows中对同一程序的指令比在Linux中多得多。所以我只用了inta=0xbeef;和printf("test\n");在C中并在Linux和Windows中编译。当我调试和反汇编主机时,我得到了这个:在Linux上:0x080483e4:push%ebp0x080483e5:mov%esp,%ebp0x080483e7:and$0xfffffff0,%esp0x080483ea:sub$0x20,%esp0x080483ed:movl$0xbeef,0x1c(%esp)0x080483f5:movl$0x80484d0,(%esp)0x080483fc:cal

c - RegQueryValueEx()读取REG_DWORD时总是在*lpData中填0

我对RegQueryValueEx()函数有疑问当我使用它时,它用0填充*lpDataLONGWINAPIRegQueryValueEx(_In_HKEYhKey,_In_opt_LPCTSTRlpValueName,_Reserved_LPDWORDlpReserved,_Out_opt_LPDWORDlpType,_Out_opt_LPBYTElpData,_Inout_opt_LPDWORDlpcbData);这是不起作用的代码#include#includeintmain(){HKEYhKey=NULL;DWORDdata=42;DWORDtype=REG_DWORD;DWOR

c - 未使用 MinGW 编译的 Winsock 服务器代码

以下是来自http://msdn.microsoft.com/en-us/library/windows/desktop/ms737593(v=vs.85).aspx的winsock服务器代码#undefUNICODE#defineWIN32_LEAN_AND_MEAN#include#include#include#include#include//NeedtolinkwithWs2_32.lib#pragmacomment(lib,"Ws2_32.lib")//#pragmacomment(lib,"Mswsock.lib")#defineDEFAULT_BUFLEN512#def

c - 如何检查套接字上是否有数据可用?

SOCKETs;//CreateaSOCKETforlisteningfor//incomingconnectionrequests.SOCKETnew_socket;//createasocketforacceptingincomingconnectionuint16port=18001;voidCreateSocket(){intsin_size;WSADATAwsa;structsockaddr_inserver,master;//creatingasocketaddressstructure:structurecontainsipaddressandportnumberprin

c++ - timeEndPeriod 是恢复之前的值还是默认值?

假设默认计时器分辨率为15毫秒。鉴于这种情况:ProcessAcallstimeBeginPeriod(1);Nowtimerresolutionis1ms.ProcessBcallstimeBeginPeriod(2);Nowtimerresolutionis2ms.ProcessBcallstimeEndPeriod(2);那么定时器分辨率是多少?它会回落到1毫秒还是15毫秒?让我们稍微修改一下场景:ProcessAcallstimeBeginPeriod(1);Nowtimerresolutionis1ms.ProcessBcallstimeBeginPeriod(2);Nowt

c - 在 vtbl 中命名函数指针

抱歉,初学者的问题。在非常好的文章中CominplainC我读到这句话:OnerequirementofaCOMobjectisthatthefirstthreemembersofourVTable(i.e.,ourIExampleVtblstruct)mustbecalledQueryInterface,AddRef,andRelease.这是真的吗?如果更改名称,但参数、调用约定和返回值将相同怎么办?你还在做这个吗?如果不是,为什么?非常感谢您的回复。(正面或负面。) 最佳答案 每个COM接口(interface)都必须派生自I

c - 无法在 Windows 8 上使用 MinGW 执行 execl()

我有一个文件hello.exe,文件路径是D:\test\hello.exe,这是一个简单的helloworld程序(测试ok)。我还有一个程序proc.c,文件路径是D:\test\proc.c,代码如下:#include#include#include#include#include#includemain(intargc,char*argv[]){intret;ret=execl("D:\\test\\hello.exe","D:\\test\\hello.exe");if(ret==-1)printf("%d:\t%s",ret,errno);}程序挂起(windows对话框显

c++ - 这个屏幕截图代码有什么问题?

我在这里找到了一个屏幕捕获代码,但是当我尝试构建它时,它无法构建,所以我自己修复了代码,现在它构建了,但我认为它不起作用,因为在调试VS时说它无法从hBitmap读取(没有数据?)。我是新手程序员,所以我现在真的不知道该怎么做......而且我可能没有正确修复代码......感谢您的帮助。#includeintmain(){//getthedevicecontextofthescreenHDChScreenDC=CreateDC(L"DISPLAY",NULL,NULL,NULL);//andadevicecontexttoputitinHDChMemoryDC=CreateCompa

c - 当询问用户名时getenv返回null?

我想使用stdlib函数getenv()获取用户名,但是我总是得到NULL这是我编写的代码:#include#includemain(){char*hai;printf("ThecurrentUsernameis\n");hai="USER";printf("%s\n",getenv(hai));exit(0);}getenv()返回的值是否取决于您用来编译代码的机器,以及为什么返回值为NULL? 最佳答案 在Windows上,您需要使用getenv("USERNAME")。USER/USERNAME环境变量不是标准化的,除非您自己