草庐IT

STL-string

全部标签

c++ - 在 dll 之间使用 STL 时遇到问题

我在一个dll中有一个vector(或字符串),通过它的引用或指针在另一个dll中修改它是否安全,例如将新成员推送到vector或更改字符串的值?不知何故,当我这样做时有时会发生崩溃,我不知道为什么。如果我只是在另一个dll中读取它,使用const指针或引用,它绝对安全吗?使用STLport怎么样?更安全吗? 最佳答案 如果你修改一个STL容器,删除或添加新元素到它,它通常涉及分配/取消分配内存。如果碰巧您使用驻留在一个DLL中的分配器分配了一些内存,然后在另一个DLL中释放内存-使用另一个分配器,驻留在另一个DLL中-那么您可能会

c++ - 使用 C++/STL 将 std::vector<CString> 展平为 multi_sz 的推荐方法是什么

我想将存储在std::vector中的字符串列表(ATL::CString)写入Windows注册表中的REG_MULTI_SZ值。我知道如何在普通C中执行此操作(迭代一次以获得总长度,分配一个缓冲区,将字符串复制到由“\0”分隔的缓冲区)。知道我使用STL尝试了以下操作(抱歉,我必须将VS2010与“foreach”一起使用):std::vectormultiline_sz;foreach(CStringentryinmyStringList){TCHAR*buf=entry.GetBuffer();multiline_sz.insert(multiline_sz.end(),&bu

c++ - 预分配 std::string 以传递到 WinAPI

我很好奇下面的代码是否正确?我在较旧版本的VS2008上运行它,用于仅限Windows的C++项目。我的目标是在std::string中预分配内存,以将其传递到知道所需字符大小的WinAPI中://'hWnd'=windowhandleintnLn=GetWindowTextLength(hWnd);//Textvariabletocollecttextinstd::wstringstr;str.reserve(nLn);GetWindowText(hWnd,(LPTSTR)str.data(),nLn);我在这里担心的是str.data()返回constwchar_t*并且GetWi

windows - Powershell Select-String 后 Windows 上行数更少的更大 txt 文件

我使用PowershellGet-Content和-nomatch运算符对一个文本文件应用了多个过滤器,然后将结果假脱机到一个文件中。gcfile.txt|{?_-notmatch'excl1|excl2|excl3'}|out-filenewfile.txt发生的情况是输出文件(newfile.txt)的行数较少,但窗口报告的大小比file.txt大。有没有人遇到过这种行为?我怎样才能让Windows报告正确的大小?我检查了行数,报告行数较少的文件大小较大。 最佳答案 我确定您遇到了编码问题。默认情况下,Get-Content使用

string - 在子字符串之后批量修剪文本文件中的行 - REM Trim with Expansion

我正在使用批处理文件(开放使用VBS和PS1文件)运行Windows10专业版,并且我有一个由软件自动导出的文本文件,如下所示:Sub_Group691_FE7IP11_2017-12-12.sldasm_bin/parts/Loft-Project.sldasm_bin/parts/Loft-Project...Sub_Group691_FE7IP12_2017-12-12.sldasm_bin/parts/Loft-Project.sldasm_bin/parts/Loft-Project...Sub_Group691_FE7IP13_2017-12-12.sldasm_bin/p

windows - Visual "strings"Windows 工具

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion我正在寻找能够执行unix“strings”程序所执行的操作但在Windows中执行的操作。还有视觉效果。偶尔,我有一个二进制文件,想看看其中是否存在某些字符串。现在,我使用记事本,打开自动换行,忽略所有垃圾并直观地搜索字符串。有人用过

.net - 从 system::String 转换为 std::string

要将system::String转换为std::string,我使用以下代码:IntPtrp=Marshal::StringToHGlobalAnsi(PORT);stringnewString=static_cast(p.ToPointer());Marshal::FreeHGlobal(p);但是,我拿到代码的地方使用IntPtrp=Marshal::StringToHGlobalAnsi(PORT);char*newString=static_cast(p.ToPointer());Marshal::FreeHGlobal(p);但是出于某种原因,如果我执行char*版本,我会在

string - 基于文件名的批量移动,不带分隔符,仅字符串

好的,Windows7Enterprisex64出现Windows批处理文件问题。我是一个基本的用户,对批处理文件的创建知之甚少。我已经修改了可以在网上找到的现有脚本以供使用。我有一个软件将其输出转储到一个文件夹,该文件夹的文件名与项目标题,当前系统日期,当前系统时间和项目设置串联在一起。每次保存项目时,它将以这种格式导出两个文件:PROJECTTITLE_2016_10_07__09_45_11__A_B_C.igesPROJECTTITLE_2016_10_07__09_45_11__A_B_C.stepA,B和C代表软件中用于项目的开关。这些名称可能存在或不存在,因为文件名可以是

windows - 批处理文件 : Extract characters from the end of a string in a loop

我想从字符串的末尾提取字符。SETLOCALEnableDelayedExpansionSETstr=123456789abcdefghFOR/l%%xIN(1,1,10)DO(ECHO%%xSETresult=%%str%:~-%%x%ECHO"Extractedcharacters:"!result!)ENDLOCAL这是我的错误输出:1“提取的字符:”%str:~-12"提取的字符:"%str:~-2 最佳答案 你不应该使用SETresult=%%str%:~-%%x%相反,SETresult=!str:~-%%x!

r - 我得到 'Error: '\U' used without hex digits in string starting ""C :\U"' when starting R

我在启动RStudio和尝试从.rnw格式编译PDF时遇到以下问题:Error:'\U'usedwithouthexdigitsincharacterstringstarting""C:\U"当启动RStudio或R时,这是我的控制台中的内容:Rversion3.4.0(2017-04-21)--"YouStupidDarkness"Copyright(C)2017TheRFoundationforStatisticalComputingPlatform:x86_64-w64-mingw32/x64(64-bit)RisfreesoftwareandcomeswithABSOLUTEL