草庐IT

STD_LOGIC

全部标签

c++ - 在 AllocConsole 之前执行 std::endl 会导致不显示 std::cout

我正在尝试使用经典的RedirectIOToConsole函数在WindowsVisual2012、Linker/Subsystem=Windows(/SUBSYSTEM:WINDOWS)的输出控制台上重定向跟踪。在AllocConsole之前执行std::endl似乎会导致显示痕迹出现问题。下面是我的测试:#include#include#includevoidRedirectIOToConsole(){FILE*conin,*conout;AllocConsole();freopen_s(&conin,"conin$","r",stdin);freopen_s(&conout,"c

c++ - 为什么 std::vector::at() 即使启用了优化也需要边界检查?

Windows中的libstdc++-6.dll有问题。这段代码:#include#includeintmain(){std::vectorx(10);std::cout编译很好,但是当我运行它时,我收到一条错误消息说Theprocedureentrypoint_ZSt24__throw_out_of_range_fmtPKczcouldnotbelocatedinthedlllibstdc++-6.dll我的问题是不是如何解决这个问题(这很可能是dll的错误版本,我只需要修复PATH)。然而,这让我意识到了一些意想不到的事情:当我打开优化时,上面的代码运行良好(不管错误的dll),即

Windows 上的 C++ std::string 转换问题

这是我的程序:boolOpen(std::stringfilename){...HANDLEhFile=CreateFile(filename.c_str(),GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL);...}错误:“CreateFileW”:无法将参数1从“constchar*”转换为“LPCWSTR”指向的类型是不相关的;转换需要reinterpret_cast,C风格的转换或函数风格的转换问题出在哪里? 最佳答案 std::string由一个char数组组成

c++ - 如何在 Windows 中重定向 std::cout 和 printf

我已经根据这篇文章创建了程序CreatingaChildProcesswithRedirectedInputandOutput,但它对std::cout和printf不起作用,所以从这样的程序中我得到了一个“你好,妈妈”字符串,而cout和printf部分没有任何结果:int_tmain(intargc,_TCHAR*argv[]){HANDLEhStdOut=GetStdHandle(STD_OUTPUT_HANDLE);constchar*buffer="Hello,momma";std::cout问:我如何拦截cout和printf?我无权访问子程序的源代码,我只需要拦截它的输出

c++ - 如何在 OSX 上通过 vswprintf 格式化宽字符字符串(想要返回 std::wstring)

我需要实现一个函数来格式化宽字符字符串并返回std::wstring。我的实现是:std::wstringformat(constwchar_t*fmt,...){std::wstringret;va_listva;va_start(va,fmt);intsize=vswprintf(nullptr,0,fmt,va);if(size>0){ret.resize(size+1);vswprintf(&ret[0],size+1,fmt,va);}va_end(va);returnret;}它在windows上运行良好,但不幸的是它在osx上不起作用,因为vswprintf(nullpt

windows - 使用 boost::filesystem::path 作为 std::map 中的键

所以std::map想要对键类型进行排序,但我遇到了问题:"a/b""a/b"如何规范化路径以创建排序?这可能吗?我尝试在自定义比较运算符中使用path::generic_string(),但没有成功。fs::equivalent()也无济于事,因为实现平等对于std::map来说还不够,它需要一个排序。这也是为什么这个问题不是HowdoI"normalize"apathnameusingboost::filesystem?的重复问题的原因。.上下文:仅限Windows,Boost1.49,文件系统3。 最佳答案 要使路径具有可比性

c++ - 使用平假名将 std::wstring 转换为 QString

我正在尝试将包含平假名的文本从wstring转换为QString,以便它可以用于标签的文本属性。但是,我的代码无法正常工作,我不确定这是为什么。下面的转换方式明显告诉我我做错了:std::wstringmyWString=L"SomeHiragana:あいうえお";ui->label->setText(QString::fromStdWString(myWString));输出:一些平假名:ã‚ã„ã†ãˆãŠ如果我直接把它们放在字符串中,我可以在标签上打印平假名:ui->label->setText("SomeHiragana:あいうえお");输出:一些平假名:あいうえお这意味着我可

windows - cmd 相当于 std::string::find_first:of

C++、Java、JavaScript和其他可能的编程语言都有一个字符串函数,可以在字符串中搜索指定字符串模式中的任何字符。例如,C++的std::string::find_first_of像这样工作:std::coutCMD中是否有任何等效项?我尝试搜索“dos字符串函数”,但似乎找不到任何内容。 最佳答案 没有直接的方法,但您可以很容易地编写自己的方法。搜索一个字符@echooffcall:charposition"Searchmeforvowels"aposechoFoundaatposition%pos%goto:eof:c

c++ - 我可以在 std::map 中使用 CComPtr 吗?

我正在用C++在WindowsCOM中编写一个程序,我正在使用CComPtr作为智能指针。我找不到答案的问题是-我可以在std::map中使用CComPtr吗?我有以下代码片段(已简化):std::map>ErrorMap;我希望维护int和IErrorInfo错误信息之间的映射。但是我不确定我是否可以执行以下操作:CComPtrresult;GetErrorInfo(0,&pErrInfo);ErrorMap.insert(std::make_pair(0,result));我担心result智能指针的所有权,以及当ErrorMap被销毁时它是否会正确释放?

c++ - 我应该使用 std::system 来编写单元测试的脚本部分吗?

我的情况是我有一个C++工具的单元测试,其中部分测试需要实际运行一个测试命令行工具(这将触发一些我可以在测试后检查的东西-工具已结束)。我认为我使用的C++单元测试框架非常无关紧要,我的问题与system("test_tool.exe...")的合法使用有关——它会seem那systemisn't在C++开发人员的顶级工具列表中(恕我直言,通常如此)。那么,是否已知system已成功用于单元测试?在UT环境中使用它执行知名工具时,我是否会遇到任何问题? 最佳答案 对我来说,这是可以接受的system用法-但您需要注意“如何检查tes