问题标签 [resourcestring]
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.
delphi - 使用运行时包构建时如何解决“需要导入的数据引用”
为了帮助我们模块化单体应用程序,我们正在设置用于调试构建的软件包,同时仍编译为单个 exe 用于发布构建。
我们的一个包(EAUtils)包含一个现在正在生产的单元[DCC Error] E2201 Need imported data reference ($G) to access 'SMsgDlgWarning' from unit 'SystemUtils'
。
这发生在构建 EAUtils 包本身时。我还没有构建依赖于 EAUtils 的软件包。EAUtils 仅依赖于 rtl/vcl 包和我为 Jedi WinApi 单元创建的包。
这是以下行的结果:
更具体地说,这是引用SMsgDlgWarning
、和的结果SMsgDlgError
,它们都在 中声明。SMsgDlgInformation
SMsgDlgConfirm
Vcl.Const
请注意,当我们构建单个可执行文件时,此代码编译不会出错。
作为一种优化手段,我们的包含文件确实包含{$IMPORTEDDATA OFF}
,因为这允许更快地访问(全局)变量和常量。请参阅http://hallvards.blogspot.com/2006/09/hack13-access-globals-faster.html。
根据有关错误的文档(http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/cm_package_varref_xml.html)这是原因,它说“为了缓解问题,它通常最容易打开 $IMPORTEDDATA 开关并重新编译产生错误的单元。”
因此,我已经{$IMPORTEDDATA ON}
在我们的包含文件中进行了设置,并通过在项目选项部分中将设置Use imported data references
为 true 来确保。Delphi Compiler | Compiling | Debugging
不幸的是,与文档相反,这并没有缓解问题。即使直接在有问题的代码上方设置此编译器指令并重新构建包也不能消除错误。
我还需要做什么来解决这个 E2201 错误?不确定,但 SMsgDlgWarning 及其朋友是资源字符串可能很重要?
.net - 参考资源字符串名称中的无效字符?是否允许使用“:”?
我在 MSDN 上进行了快速检查,然后在此处进行了快速搜索,但我没有找到任何明确说明 .net 资源字符串名称中允许/不允许哪些字符的内容。目前我正在尝试找出是否允许使用“:”,但我更愿意找到一些涵盖所有情况的参考。
delphi - 如何获取Delphi资源字符串的字符串表资源ID?
在 Delphi 中,您可以声明要存储在模块资源部分的字符串表中的字符串。
在编译时,Delphi 会为其分配一个 ID 并将其存储在字符串表中。
有没有办法检索声明为资源字符串的字符串的 ID?
原因是我使用了一个像 gnugettext 一样工作的包。System.pas 中的某些函数(如 LoadResString)是挂钩的,因此当我在表达式中使用资源字符串时,它将被不同的字符串(翻译)替换。当然,这非常方便,但有时我需要资源字符串的原始(未翻译)文本。
当我能够检索到字符串的资源 id 时,我可以调用 LoadString API 来获取原始文本,而不是翻译文本。
silverlight - 在 Visual Studio 2010 的 Silverlight 应用程序中删除不需要的资源字符串
我有一个 Silverlight 应用程序(Silverlight 4.0),并且 ApplicationStrings.resx 文件中有很多字符串。我想删除资源文件中不需要的资源字符串。请帮帮我。
wpf - 如何在wpf的viewmodel中访问字符串资源
我是 WPF 的新手,遵循 MVVM 模式。试图创建 dll,我在 resourcedictionary 中定义了一些资源字符串,能够在 xaml 文件中访问它,但我需要在 viewmodel 中访问它。在网上搜索,发现有一种方法 TryFindResource() 但此方法在应用程序上下文中,我如何在视图模式下使用它?
谢谢
javascript - ExtendScript 解析资源字符串以创建变量路径
我希望通过解析资源字符串来自动创建我的变量路径来加快我的工作流程。不仅查看大型 UI 会让人感到困惑,而且写出访问每个元素的路径更糟糕。ExtendScript 有很多“怪癖”,我们称之为。因此,为了简单起见,下面的示例被削减了很多。
我需要为变量赋值创建这样的路径:
我知道必须有一种方法通过 RegExp 来解析制表符空格或“},\”部分结尾以使其工作,我只是无法自己找出解决方案。任何帮助表示赞赏。谢谢。
delphi - 从实现区域获取资源字符串标识符
我有一个单元,resourcestring
它的implementation
部分中有一个。如何resourcestring
在另一个单元中获取 ' 标识符?
如果它在该interface
部分中可用,我可以这样写:
delphi - Delphi 如何从资源字符串单元中找到资源名称
情况是:
从我的应用程序中,我收到了错误代码“aabbcc”。可以使用错误代码访问资源名称 aabbcc 吗?
delphi - 在新挂钩的 LoadResString 方法中读取字符串列表时出现 StackOverflow 异常
供参考 - 以下是我的代码,我在 NewLoadResString 函数中得到 StackOverflow 异常。这种情况就像我创建了两个字符串列表,即 RecStrNameIdMap 和 NewStringValueList。这里的 RecStrNameIdMap 是哈希字符串列表,用于存储名称和字符串标识符的映射。这样我就可以为其标识符(即 ID)引用资源字符串名称。
NewStringValueList 是一个字符串列表,其中包含少数资源字符串的新值。
我已经在 system.LoadResString 方法上连接了 NewLoadResString 方法。在新方法中,我正在检查 NewStringValueList 中给定资源字符串是否具有新值,然后获取该值并返回新的而不是旧的声明值。
线上发生堆栈溢出异常 *
如果 RecStrNameIdMap.IndexOfName(IntToStr(ResStringRec^.Identifier)) > -1 然后
* 任何人都可以检查我收到此错误的原因。
delphi - 通过资源字符串标识符获取资源字符串值
如何通过资源字符串标识符获取资源字符串值。
ResourceString MyString = 'ABC';
如果我有 MyString 的字符串标识符,如何从该 ID 中获取值“ABC”。