问题标签 [string-table]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
154 浏览

c - 如何在字符串表中增加指针?

我正在用指向不同字符串的指针填充一个字符串表 char* 数据 [500]。

在这里,我使用另一个缓冲区,以便可以在字符串中存储索引:

调试时我可以看到指针总是指向同一个地址。

如果我有纯字符串而不使用另一个缓冲区(PrintBuffer),每个指针都指向一个不同的地址,我得到:

A 文本 0 B 文本 1 C 文本 2

但在这个星座中,我得到:

C 文本 2 C 文本 2 C 文本 2

有没有办法增加指针以使其指向不同的地址?

0 投票
1 回答
2046 浏览

c++ - 如何创建字符串表

奇怪的是,几乎没有关于这个主题的在线文档。我有一个应用程序,其中包含用于 UI 的硬编码字符串以及分散在源代码中的各种其他内容。我试图至少对其中一些进行汇总,因为其中一些需要根据应用程序编译的平台进行更改。

我在这里使用了第二个示例(复制如下以供参考),但它对它应该如何实际工作的细节有点轻描淡写。似乎一切都重新初始化了,project_strings.cpp并且从未真正调用过代码。

有人可以解释一下或告诉我这是一个糟糕的主意,我应该做点别的吗?

0 投票
1 回答
146 浏览

c# - 我可以在正在运行的进程中看到字符串表的内容吗?

有什么方法可以在正在运行的 .NET 应用程序中查看字符串表的内容?

我想比较一个控制台应用程序与普通字符串连接和一个使用字符串生成器的应用程序。

0 投票
2 回答
917 浏览

delphi - 查找字符串表资源 ID

字符串表资源 ID 存储在哪里?我能够在表格中列出字符串,但似乎没有任何类型的标识符“原始资源”它只是一个(数组)USHORT(长度)后跟宽字符(字符串),有没有标识符。

我读过resourcestring(type) can be cast to a PResStringRecwhos .Identifierfield will give an identifier但是,我尝试使用我的“原始字符串”,它是一个随机的大数(比较的IDs resedit给出),关于如何找到ID的任何建议?

图片

0 投票
4 回答
202 浏览

c - c89 中的指示符

C99 允许数组初始值设定项(除其他外)指定使用正整数指示符设置数组的哪个元素($6.7.8.6、$6.7.8.17),例如:

我以前用它来制作一个枚举到字符串的表,如下所示:

但是,我现在的工作要求是我的代码符合 c89。

我已经研究过预处理器魔法(例如在这里),但我需要字符串是任意的,而不是枚举符号的副本。

仅仅做是不够的

因为我将来需要添加枚举元素。使用 c99 方法,这将导致表中出现 NULL 指针,如果它们出现问题,可以很容易地进行调试。如果我忘记使用这种方法更新字符串表,我会得到更难调试的段错误。如果无论如何我都必须记住偏移量,它也会破坏拥有符号的意义。

如果声明在一个函数中,我可以达到这样的预期效果:

但是,至少对于gcc,这并没有得到优化。

有没有办法在 c89 中声明这样的字符串表?(组装没问题。)

0 投票
2 回答
1531 浏览

c - 如何将棋盘内容显示为 C 语言中的字符串并将字符串存储在表格中?

如何将棋盘内容显示为 C 语言中的字符串(棋子和点或空白点的空格)并将字符串存储在表格中?我可以展示我已经做过的事情。

0 投票
1 回答
936 浏览

c++ - c++ 视觉工作室资源

我正在尝试在资源文件.rc 中实现一个字符串表,然后使用函数 CString::LoadStringW() 加载特定的字符串。这是代码 main.cpp:

已经有很好的链接描述,如何使用资源文件:

http://www.cplusplus.com/forum/windows/119338/

http://www.winprog.org/tutorial/resources.html

问题是当我编译代码然后尝试运行时,它不会读取字符串。调试时,带有 LoadStringW() 函数的行会抛出断言错误:

在我提供的第一个 URL 的末尾(作为最后一步)链接已编译的资源文件 .rc 和我的源文件 main.cpp。我不确定如何执行此操作,也许这就是我的程序无法按预期工作的原因。

请问,你有什么建议吗?

我正在尝试 MSVS 2015 / 2017。

谢谢。

0 投票
1 回答
706 浏览

windows - 确定 EXE 中包含哪个 STRINGTABLE

我的 Delphi 应用程序使用 Microsoft 资源编译器 (rc.exe) 来编译字符串列表(文件中的文本格式.rc),如下所示:

成一个.res文件。所有表都包含相同的 ID(例如cszLanguageName)。我维护两个单独的资源字符串文件。一种主要包含欧洲语言(英语、捷克语等),我称之为“Standard.rc”。另一个称为“Alternate.rc”,包含所有其他语言,如韩语、泰语等。

编译时开关确定哪个文件链接到 EXE:

那是背景,现在是问题!

给定 EXE 的路径并使用类似 Windows 的GetFileVersionInfo方法,是否可以确定 EXE 中有哪些 STRINGTABLE 资源?如果可以确定是否:

或者

被包括在内,则可以将 EXE 标识为“标准”或“替代”。

目前,在没有实际执行 EXE 的情况下,唯一的区别是以字节为单位的大小,这是一种不可靠的启发式方法。C++ 或 C# 都可以。我可以适应 Delphi 或编写一个从 Delphi 调用的单独实用程序。

更新

根据 LU RD 的评论,我创建了以下 Version.rc 文件:

然后将其编译(使用 Microsoft 资源编译器)到 Version.res 并使用 .res 链接到应用程序中{$R 'source\Version.res'}。这可以按预期编译,但是当我尝试InternalName从 EXE 中读取该字段时,它是空白的。如果我在项目属性中手动设置InternalName为“测试”,则将其设置为“测试”。我做错了什么,如何覆盖在项目属性中手动输入的内容?

0 投票
0 回答
173 浏览

c++ - 在 exe C++ 中编辑字符串表资源

我的程序中有一个字符串表资源。ID - IDS_TEST,值 - 101,标题 - 测试

我想通过将 exe 作为输入来编辑 value = 101。也就是我想把值改成200,怎么可能呢?请帮我。我尝试使用 BeginUpdateResource。但它正在破坏 .rc 文件本身。

0 投票
2 回答
908 浏览

linux - 区分 ELF 文件中的 .shstrtab 和 .strtab

我想知道 a与解析 ELF 文件时的.shstrtaba 相比如何识别?.strtab从阅读elf(5) - Linux 手册页开始,两者都属于部分标题类型SHT_STRTAB,那么我怎么知道我遇到的是一个还是另一个?

他们的描述是:

执行时readelf file.o,我看到以下内容:

所以它们在我看来是一样的,除了偏移量。