就像标题上说的那样。.我得到了这段代码
std::string dir;
(ls == 1) ? dir = "Long" : dir = "Short";
会产生我不理解的错误
LNK2019: unresolved external symbol _CrtDbgReportW referenced in function
"void * __cdecl std::_Allocate(unsigned __int64,unsigned __int64,bool)
当我切换到
const char* dir;
(ls == 1) ? dir = "Long" : dir = "Short";
一切正常。
那是什么交易?
答案 0 :(得分:3)
在
std::string dir;
(ls == 1) ? dir = "Long" : dir = "Short";
dir
是std::string
,这是一个相当复杂的类,它将从整个标准库中逐位提取内容,包括似乎正在调用Windows调试帮助程序功能的内存分配{ {1}},在某些情况下。无论出于何种原因,都不会链接此调试帮助器功能。
但是在
_CrtDbgReportW
const char* dir;
(ls == 1) ? dir = "Long" : dir = "Short";
只是一个简单的指针,一个地址。 dir
只需将dir = "Long"
指向字符串文字dir
。这只是一个简单的任务,不需要任何库的帮助。