编译期间MSVC中的字符串长度限制
String length limit in MSVC during compile?
我正在将c++代码从Linux转换到windows(使用Visual Studio 2013)。但是MSVC对字符串有长度限制(大约2048字节?),而GCC没有。我的问题是,有一个配置文件包含几个巨大的字符串,它在GCC下工作得很好。但是MSVC报告编译错误为
错误C2026:字符串太大,末尾字符被截断。
字符串很简单,CONFIGSTRING
很大。
const std::string CONFIGSTRING="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
这个问题有什么解决办法吗?我可以在windows下使用GCC单独编译配置文件到对象文件并将其链接到其他文件吗?如果可能的话,谁能简单地告诉我怎么做?
根据MSDN文档,这应该可以工作:
const std::string str =
"xxxx" // Max 2048 bytes
"xxxx" // Max 2048 bytes
// ... and so on (up to 65535 bytes)
;
如果这仍然不够,那么:
std::string str;
str = "part1";
str += "part2";
str += "part3"; // And so on.
我可以在windows下使用GCC将配置文件单独编译为对象文件并链接到其他文件吗?
相关文章:
- 从C字符串中获取奇怪的字符串长度
- 为什么字符串比较的 == 运算符相对于任一字符串长度线性时间(似乎)?
- 反斜杠和引号不计入字符串长度?
- 如何对字符串::getline进行长度限制
- 无法在 abs 函数 c++ 中使用字符串长度函数
- 使用字符串erase()和字符串长度()从字符串中删除某些字符
- 在 c++ 中,std::string::size() 不计算修改后的字符串长度
- strcpy_s将超过字符串长度的字符串复制到目标缓冲区(用 0xFE 填充)
- 字符串::长度() 返回垃圾值
- 从矢量中删除具有特定字符串长度的元素
- 恒定字符阵列的获取字符串长度函数(strlen)不是恒定表达式
- COUT和特定的字符串长度算术操作C 的问题
- 当 n 的默认值为字符串长度时,如何反转字符串中的 n 个字符
- 使用字符串格式限制十六进制数字的数量
- 如何从用户那里获取具有预定义字符串长度的字符串输入C++
- 限制集合中的字符串长度
- 如何在没有长度限制的情况下在c++中获得格式化的std::字符串
- 限制字符串长度
- 将字符串长度限制在特定范围内
- 编译期间MSVC中的字符串长度限制