草庐IT

basic_handle

全部标签

C++ "error: passing ' const std::map<int, std::basic_string<char>>' as ' this' argument of ..."

使用以下代码(为简洁起见摘录):颜色.h:classcolor{public:color();enumcolorType{black,blue,green,cyan,red,magenta,brown,lightgray,nocolor};colorTypegetColorType();voidsetColorType(colorTypecColortype);stringgetColorText()const;private:colorTypecColortype=nocolor;mapcolors={{black,"black"},{blue,"blue"},{green,"gre

c++ - 继承自 std::basic_streambuf 以写入套接字

我想编写一个我自己的日志记录库,为日志条目发送到的任何地方提供抽象。C++的IO库已经通过std::stringstream和std::fstream提供了这种抽象。我还希望能够从套接字读取/向套接字写入。我读到扩展标准库的正确方法是继承std::basic_streambuf。我不明白的是,如果像std::basic_filebuf那样从std::basic_streambuf继承,那么哪里需要std::ifsream、std::ofstream和std::fstream类?我不能只用std::basic_streambuf的子类实例替换某些流的缓冲区,它输出我想要的地方吗?到目前为

c++ - 不能为 std::basic_string<T> foo = "foo"推导出 T = char?

问题:在下面的代码中,第一个示例的模板参数类型推导似乎失败了,但第二个示例却没有。我不明白为什么第一个样本无法推断出T=char.我会认为T从"foo"转换时可以推导出至std::bacis_string,但即使这不起作用,我也提供了第二个函数参数,我认为它会明确约束T至char.为什么它会失败?Doesnotwork:#include#includetemplatevoidprint(conststd::basic_string&a,conststd::basic_string&b){std::cout错误:string.cpp:14:5:error:nomatchingfuncti

c++ - 无法访问类 'std::basic_ios<_Elem,_Traits>' 中声明的私有(private)成员

这个特定方法有问题,不知道如何解决!我得到的错误是上面的:"errorC2248:'std::basic_ios::basic_ios':cannotaccessprivatememberdeclaredinclass'std::basic_ios'C:\ProgramFiles\MicrosoftVisualStudio10.0\VC\include\ostream604"我的方法是:ostreamoperator在标题中:friendstd::ostreamoperator关于如何解决这个问题的任何想法?我认为这与通过引用而不是值传递有关...但我有点困惑!

c++ - 理解错误 "terminate called after throwing an instance of ' std::length_error' what(): basic_string::_S_create Aborted (core dumped)"

所以这是我的错误:terminatecalledafterthrowinganinstanceof'std::length_error'what():basic_string::_S_createAborted(coredumped)这是我的代码://CoderemovedstringgenerateSong(stringlist[],intnum){//Coderemoved//Coderemovedfor(i=0;i我只想知道该错误的含义,以便我知道如何修复它。我看到很多帖子都有类似的错误,但没有完全相同的。从字面上看,我才刚刚开始使用C++,而这些答案对我目前所学的知识都没有任何

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++ - basic_string::_S_construct null 无效

我正在从命令行读取输入文件。intmain(intargc,char**argv){ScenemyScene;stringfilename=argv[1];myScene=Parser(filename);...}在另一个文件中,我使用了像这样declerated的解析器函数;SceneParser(stringfilename){stringline;ifstreammyfile(filename.c_str());...returnscene;}我收到错误;在抛出“std::logic_error”的实例后终止调用what():basic_string::_S_constructn

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

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

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结构可以按流程方式显示这些详细信息?如何获取