草庐IT

RESIZE_HANDLE_SIZE

全部标签

c++ - constexpr 上下文中 std::array 指针的 size()

假设我有一个函数:inttest(std::array*data){charbuffer[data->size()*2];[...somecode...]}显然可以在编译时评估缓冲区的大小:数据的constexpr大小为8个元素,8*2=16字节。然而,当使用-Wall、-pedantic和-std=c++11编译时,我得到了臭名昭著的错误:warning:variablelengtharraysareaC99feature[-Wvla-extension]我认为这是有道理的:array::size()是constexpr,但它仍然是一个方法,在上面的函数中我们仍然需要取消引用一个指针

c++ - 为什么 Codan 找不到 size_t

我刚刚开始使用EclipseIndigo(来自Galileo),每次使用size_t时,我都会遇到一些红色的小错误。代码编译没有问题,但我怀疑我必须显式添加到包含目录的路径。我已经有常见的嫌疑人了。我正在使用Gnu工具链为ColdFire处理器进行交叉编译,因此除了来自芯片制造商的标准包含之外,我还包含m68k-elf下的包含\include\include\c++\4.2.1\include\c++\4.2.1\include\include\c++\4.2.1\m68k-elf更新我注意到这个工具链唯一存在stddef.h的地方是lib目录gcc-m68k\lib\gcc\m68k

c++ - std::vector::resize(size_type) 是否应该(在 C++11 中)适用于默认的可构造 value_type int[4]?

在C++11中,std::vector::resize()有两个版本:voidresize(size_typecount);voidresize(size_typecount,constvalue_type&value);我理解(正如对thisquestion的一个答案的评论之一所建议的那样)第一个要求value_type是默认可构造的,而第二个要求它是可复制构造的。但是,(gcc4.7.0)usingnamespacestd;typedefintblock[4];vectorA;static_assert(is_default_constructible::value,";-(");

c++ - 使用带有自定义删除器的 shared_ptr 使 HANDLE RAII 兼容

我最近在SO上发布了一个关于RAII的一般性问题.但是,我的HANDLE示例仍然存在一些实现问题。HANDLE在windows.h中被定义为void*。因此,正确的shared_ptr定义需要是std::tr1::shared_ptrmyHandle(INVALID_HANDLE_VALUE,CloseHandle);示例1CreateToolhelp32Snapshot:返回HANDLE并运行。conststd::tr1::shared_ptrh(CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,NULL),CloseHandle);当我在定义中

c++ - 为什么在 size_t 的情况下抛出 bad_alloc() 异常

我正在处理下面的代码,当我执行这段代码时,我得到了一个std::bad_alloc异常:int_tmain(intargc,_TCHAR*argv[]){FILE*pFile;size_tstate;pFile=fopen("C:\\shared.tmp","rb");if(pFile!=NULL){size_trt=fread(&state,sizeof(int),1,pFile);char*string=NULL;string=newchar[state+1];fclose(pFile);}return0;}下面这行导致抛出异常:string=newchar[state+1];为什

windows - 'handle' 是 WinAPI 中指针的同义词吗?

我最近一直在阅读一些有关使用C++进行Windows编程的书籍,并且对WinAPI中一些重复出现的概念有一些混淆的理解。例如,有大量以handle关键字“H”开头的数据类型,这些是否应该像指针一样使用?但是还有其他以指针关键字“P”开头的数据类型。所以我想不会。那到底是什么?为什么指向某些数据类型的指针首先被赋予单独的数据类型?例如,PCHAR可以很容易地设计成CHAR*? 最佳答案 句柄在Windows的早期版本中曾经是指针,但现在不再是了。将它们视为一个“cookie”,一个允许Windows找回先前分配的资源的唯一值。与Cre

c++ - WinAPI C++ : Reprogramming Window Resize

我有一个窗口,我想将边框实现为调整边框大小,就像任何其他窗口一样。从评论和答案中吸取建议,我重写了我的代码。对于WM_GETMINMAXINFO,我有:MINMAXINFO*min_max=reinterpret_cast(lparam);min_max->ptMinTrackSize.x=MINX;min_max->ptMinTrackSize.y=MINY;MINX和MINY是我希望窗口的最小尺寸。对于WM_NCHITTEST,我有:RECTwnd_rect;intx,y;GetWindowRect(window,&wnd_rect);x=GET_X_LPARAM(lparam)-

c - HANDLE 的尺寸是多少?

作为练习,我查看了STARTUPINFO结构。如您所见,最后3个元素的类型为HANDLE。所以我想知道HANDLE的大小。有人知道HANDLE的大小吗? 最佳答案 WindowsHANDLE类型不是完全不透明的类型。Windows定义了几个您可以依赖的属性。主要的是你的问题的答案:它总是void*类型。来自WindowsDataTypesMSDN上的条目:HANDLEAhandletoanobject.ThistypeisdeclaredinWinNT.hasfollows:typedefPVOIDHANDLE;稍后在表中您可以看到

c++ - 如何获取每秒接收和发送的网络字节数对于进程(输入 : process id or handle) in C++ for Windows?

我需要像在资源监视器中一样获取每个进程的网络信息。我需要找到接收到的字节数/秒和发送的字节数/秒。我尝试使用Win32_PerfRawData_PerfProc_Process类获取它。但除了网络详细信息外,它还提供IO、文件字节数。我尝试使用Win32_PerfRawData_Tcpip_NetworkInterface类获取详细信息。但它提供了每个网络接口(interface)的详细信息。然后我尝试使用GetTcpStatistics函数。为此使用了MIB_IPSTATS。MIB_IPSTATS显示整个过程的累积结果。是否有任何其他MIB结构可以按流程方式显示这些详细信息?如何获取

c++ - 使用 C++11 std::thread native_handle 以及我是否需要 CloseHandle

我开始练习使用C++11std::thread。通常,对于Win32,只要我有线程句柄,我就需要调用CloseHandle。当我使用C++11native_handle时,是否仍需要调用CloseHandle?另外,如果我不使用C++11native句柄,线程句柄是否得到正确清理? 最佳答案 当然不是。线程对象有一个析构函数,它释放对象可能获取的任何操作系统特定资源。实际上,每个(好的)C++对象都有一个析构函数,可以清除需要清理的所有内容,并且这个析构函数(当代码编写正确时)由程序自动调用。这个习语被称为RAII-每个对象都有一个