草庐IT

c++ - name = null 时的 getsockname 行为

我在Windows中有调用getsockname的代码如下:getsockname(*x,NULL,0)第三个参数(namelen)是IN\Out参数,包含名称缓冲区的大小,以字节为单位。返回时,namelen参数包含name参数的实际大小(以字节为单位)。现在,我的问题是,如果name等于null,namelen等于零,会发生什么?我在linux中看到,如果name为NULL,namelen被忽略,但MSDN没有提及任何关于这种情况的信息。.MSDN链接是hereLinux的IBM链接是here提前致谢 最佳答案 在您的代码中,您

c - 从窗口中删除按钮

我使用C++创建了一个具有“WNDCLASS”结构的窗口。然后,我再次将“CreateWindow”与系统类“button”一起使用,并将父句柄设置为已创建窗口的句柄。如何从窗口中删除此按钮?我试过调用“DestroyWindow”函数,但没有任何反应。如果我不能,有没有办法完全删除窗口并在没有按钮的情况下重新绘制所有内容,这样它就不会出现?#include#includeHWNDclientwindow;RECTwr;LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam){switch(messag

c++ - 如何创建没有透明内容的完全透明窗口?

我试过这个:#includeLRESULTCALLBACKWndProc(HWNDhwnd,UINTmsg,WPARAMwParam,LPARAMlParam){switch(msg){caseWM_CLOSE:DestroyWindow(hwnd);break;caseWM_DESTROY:PostQuitMessage(0);break;caseWM_SIZE:caseWM_MOVE:caseWM_PAINT:{PAINTSTRUCTps;BeginPaint(hwnd,&ps);EndPaint(hwnd,&ps);return0;}caseWM_CTLCOLORSTATIC:{

c++ - 在 WM_CREATE 中设置接口(interface)指针,在 WM_COMMAND 中变为 NULL

我正在学习COM,目前没有遵循任何特定的架构,我正在加载我自己的库而不是使用COM引擎。我在WM_CREATE中加载我的库,创建指向ISum的接口(interface)指针,hServerLib=LoadLibrary(TEXT("QIPropertiesServer.dll"));if(hServerLib==NULL){MessageBox(hwnd,TEXT("RequiredLibrarycouldnotbefound"),TEXT("Error!!"),MB_OK);DestroyWindow(hwnd);}pfnCreateComponentInstance=(PFN_FU

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环境变量不是标准化的,除非您自己

windows - win32_physicalMemory.Capacity 在 powershell 中返回 null

这是一个非常奇怪的问题,只发生在我测试过的一台计算机上。我有以下代码行:(get-WmiObjectwin32_physicalMemory-Impersonation3-ComputerName"localhost").Capacity由于某种原因返回null。但是,在同一台计算机上,如果我运行命令:get-WmiObjectwin32_physicalMemory-Impersonation3-ComputerName"localhost"我得到了两根ram的信息,每根的容量都是8589934592(8GB)。计算机运行的是Powershell版本2,在其他计算机(Powershe

c++ - 获取已创建进程的进程句柄 Windows

我需要在运行我的程序时为刚刚创建的所有进程提供句柄或PID。到目前为止,我已经使用了这段代码,每次创建进程时都会告诉我。问题是我只获得有关创建的进程的信息,但我没有关于进程本身的任何信息。https://msdn.microsoft.com/en-us/library/aa390425(VS.85).aspx这是我获得事件的功能,但我不知道从哪里可以获得新流程的信息:HRESULTEventSink::Indicate(longlObjectCount,IWbemClassObject**apObjArray){HRESULThres=S_OK;for(inti=0;i谢谢

c++ - 将 unicode(带 BOM)字符串转换为 ASCII std::string

我有一个带有初始BOM的unicode字符串(一系列字节)(它通常是UTF-16little-endian)我需要将其转换为ASCIIstd::string。我尝试使用thissolution但它不适用于visualstudio2015.我怎样才能转换那一系列的字节?目标系统将是Windows。 最佳答案 这应该适用于visualstudio。此函数永远不应内联,因为它会在堆栈上分配临时可变大小的缓冲区。std::stringtoMultibyte(constwchar_t*src,UINTcodepage=CP_ACP){intw

c# - 从 gridview 插入数据时处理 'NULL' 和键约束

我正在尝试通过C#Windows应用程序中的gridview将值插入到数据库中。我尝试了两种不同的方法,但似乎都不适合我。2类代码如下所示......假设,即使下面的代码有效......我收到关于主键和外键约束的各种错误......问题:我有confactorID和macroID列作为整数,在目标businesslogic表中可以为空......我'我不确定如何通过C#gridview工具在这些列中插入“NULL”...即使我将整数值作为输入,也似乎存在外键和主键(重复)约束问题....我需要在下面的代码中更改什么才能解决这些问题......我已经被这些问题困扰了8个多小时......

python - 如何在 Windows 上从 C 中的 CreateProcess 执行 Python 脚本?

我已经设法让C代码在C代码中使用PIPES在Unix上愉快地调用Python脚本。我现在需要在Windows上执行相同的操作。本质上,我想在Windows上用不同的脚本语言(如Python/Lua等)编写脚本,并能够使用STDIN/STDOUT等执行它们。我一直在查看“CreateProcess”调用:http://msdn.microsoft.com/en-us/library/ms682425(VS.85).aspx虽然我可以让它与“用C编写的child”一起工作,但我无法让它调用Python脚本。下面是我的windows盒子上的“parent/发件人代码”:#include#in