如何创建字符串表
How to create a string table
奇怪的是,几乎没有关于这个主题的在线文档。 我有一个应用程序,其中包含用于 UI 的硬编码字符串以及分散在源代码中的各种其他内容。 我正在尝试至少收集其中的一些,因为其中一些需要根据应用程序的编译平台进行更改。
我在这里使用了第二个示例(复制如下以供参考),但它对它应该如何实际工作的细节有些轻。 似乎一切都在project_strings.cpp
中重新初始化,并且从未实际调用过代码。
// in your project_strings.h
namespace MyProjectStrings {
const char *password;
...
}
// the project_strings.cpp for the strings
#include "project_strings.h"
namespace MyProjectStrings {
const char *password = "Password:";
...
}
// some random user who needs that string
#include "project_strings.h"
std::string password(MyProjectStrings::password);
有人可以解释一下或告诉我这是一个糟糕的主意,我应该做点别的事情吗?
您链接的示例只是在头文件的命名空间中声明一些const char*
,然后在.cpp文件中定义它们。但是,C++使用的语法不正确 - 头文件中的声明应该是extern const char*
而不是const char*
,因为const
值默认为C++中的内部链接。
大多数编译器/链接器工具链C++会将来自一个翻译单元(project_strings.cpp
)的所有字符串放在生成的可执行文件的只读数据段中。
这是处理静态字符串的一种合理、简单的方法,尽管如果您需要处理本地化或其他复杂性,您可能希望一些更动态/更复杂的东西。
相关文章:
- 从std::字符串创建OssBitString
- 如何从字符串创建lua表?
- 如何使用循环从另一个字符串创建一个没有空格的新字符串
- 如何从字符串创建一个web::uri以放入client.connect()
- 如何从字符串创建固定的QDateTime
- 用C 的字符串创建一系列字符串
- 正在尝试为c字符串创建一个Text Line类
- 如何使用字符串创建条件
- 优化字符串创建
- C++:使用子字符串创建新字符串
- 从字符串创建对象 (C++)
- 通过本机字符串创建 BSTR(使用_bstr_t包装器)时,如何设置长度
- 基于另一个字符串创建一个由空格 (_) 和空格组成的字符串
- 有没有更好的方法从字符串创建目录?CPP,创建目录,字符串流,字符串
- 在 c++ 中从字符串创建类以避免大型 switch 语句
- 从字符串C++创建控制台标题
- C++:从字符串创建参数化指针
- 在C++中为字符串创建自定义函数
- 如何为字符串创建要起作用的unordered_map
- 如何从二进制字符串创建一个bitset