草庐IT

IS_STRING

全部标签

c++ - Clion 的 "Call to std::pair is ambiguous"但可以编译代码

我有一个函数可以在这种状态下编译,但给出“配对调用不明确”,但仅在ClionIDE中,编译没有问题,如果我添加任何随机的东西,警告就会消失,即使它最终导致编译器错误。std::pair>Config::foo(conststd::string&sec,conststd::string&key)const{returnstd::pair>(hasSection(sec)?(hasKey(sec,key)?Status::Success:Status::MissingKey):Status::MissingSec,hasKey(sec,key)?config_map.find(sec)->

c++ - "Is there a better way?"Windows Vista 上的 wininet 错误 12029

在WindowsVista上使用MFCwininet类时,我一直收到错误12029(错误INTERNET无法连接,尝试连接到服务器失败。)。错误的原因是WindowsDefender。有没有比完全关闭WindowsDefender更好的方法来解决这个问题?我尝试关闭“实时保护”无济于事,我不得不完全关闭WD以阻止12029错误。如果没有更好的解决方案,希望有同样问题的其他人会看到这个问题并能够解决他们自己的问题。我上下搜索了intertubes并没有发现winineterror12029和WD之间的任何交叉引用。我的引用代码::CInternetSessionsession;::CHt

Windows "known folders": is there any one of them which is reliably read/write for all users on all versions?

SHGetKnownFolderPath()及其队列接受定义的常量之一here,返回目录的路径。我正在寻找这些文件夹中的一个,它可以被XP、Vista和Windows7上的所有用户(包括LocalSystem)可靠地写入...但我想我被淘汰了。看起来,事实上,硬盘驱动器上不再有单一位置可以放置文件并确保所有用户都可以在所有这些操作系统版本上写入它,而无需先修改权限。这是真的吗? 最佳答案 你是对的;没有这样的文件夹。您需要自己创建一个。 关于Windows"knownfolders":i

windows - 为什么 boost::filesystem is_directory 在作为 Windows 服务运行时返回不同的结果?

我有一些代码可以遍历目录中的文件并对非目录文件执行有用的操作,如下所示:namespacebfs=boost::filesystem;for(bfs::directory_iteratoriterDir(m_inPath);bContinue&&iterDir!=bfs::directory_iterator();iterDir++){std::stringfilename=iterDir->path().filename().string();boost::to_lower(filename);if(!bfs::is_directory(*iterDir)&&Condition2(f

ASP.NET "access is denied"访问 UNC 路径时出错

下面添加了更正:有问题的代码不是IIS7应用程序的一部分(没有应用程序池)。我有一个IIS虚拟目录,其中包含一个带有以下代码的aspx页面:System.Net.WebRequestwr=System.Net.WebRequest.Create(@"file://unc-share/directory/file.pdf");wr.Credentials=System.Net.CredentialCache.DefaultCredentials;WebResponseresponse=wr.GetResponse();调用GetResponse()时,我收到“访问路径'\unc-shar

c++ - 将 basic_string<char16_t> 传递给只接受 wchar_t * 和 char * 的方法

当您只能获取存储在char16_t的basic_string中的值时,如何使用仅接受char*和wchar_t*的方法?例如在cstdio中删除。cstdio中的remove函数只接受char*和wchar_t*。不能将char16_t转换为wstring:link.Char无法处理所有UTF-16字符 最佳答案 您需要对卡在std::basic_string中的UTF-16进行转码到采用std::string的任何函数所使用的正确编码或charconst*作为论据。同样,您需要在定位wchar_t时更改编码基于序列。当然,随着人们

Windows 内存管理 : check if a page is in memory

在Windows中,有没有办法检查页面是在内存中还是在磁盘(交换空间)中?我想知道这一点的原因是,如果页面在磁盘中,则通过不访问该页面来避免导致页面错误。 最佳答案 据我所知,没有记录在案的方法可以在用户模式下完成此操作。也就是说,可以在内核模式下确定这一点,但这将涉及检查属于内存管理器的页表条目——这不是您在任何类型的生产代码中真正不想做的事情.您要解决的真正问题是什么? 关于Windows内存管理:checkifapageisinmemory,我们在StackOverflow上找到一

c++ - 遍历 std::vector 以从 std::string 数组中查找匹配项,更简单的方法?

我循环遍历std::vector和std::string数组以从vector中找到匹配项。例子:#include#include#includeintmain(){std::coutmyVector;myVector.push_back("Word");myVector.push_back("Word2");myVector.push_back("Word4");myVector.push_back("Word6");myVector.push_back("Word7");std::stringmyStringArr[]={"Word","Word1","Word2","Word3",

windows - 批处理文件中的 git archive "The input line is too long. "错误

我设法从各种来源修改了我发现的脚本,以创建在2个变更集之间添加或更改的文件的存档。批处理脚本如下:setlocalenabledelayedexpansionsetoutput=for/f"delims="%%ain('gitdiff--name-only%1%2')do(setoutput=!output!"%%a")gitarchive-oexport.zipHEAD%output%endlocal这在今天之前一直很好用,突然间我收到了以下错误:Theinputlineistoolong.Thesyntaxofthecommandisincorrect.我已经确认造成这种情况的原因

c++ - 如何检查 string::append() 是否会失败

我正在编写一段代码,其中我需要通过向其append数据来创建一个std::string(这里的数据表示应用程序的日志)。但字符串也有其大小限制。我在try-catchblock中编写了代码,当append()失败时,它会抛出异常。我需要在append()之前检查append新字符串是否会导致任何异常,因为一旦抛出异常,它就会清除字符串中的数据。我想检查append新字符串是否会导致任何异常,如果是,则将数据写入文件并清除下一次输入的字符串。由于是应用程序日志,所以我不知道最终大小是多少。所以我试图让代码不那么容易受到上述问题的影响。我检查了一个条件如下:如果“current_strin