覆盖 MFC 应用程序的 LoadString

Posted

技术标签:

【中文标题】覆盖 MFC 应用程序的 LoadString【英文标题】:Override LoadString for MFC app 【发布时间】:2012-03-19 00:51:56 【问题描述】:

我正在尝试本地化一个静态链接的 MFC 应用程序。为方便起见,我希望所有字符串都来自 XML 文件。我已经为我的应用程序的其余部分设置了这个。但是,MFC 在内部从字符串资源中检索一些字符串,大概是通过LoadString。是否可以覆盖它以便我可以重新实现它以从 XML 文件中获取字符串?

我已经尝试创建一个实现 LoadString 的 DLL,但它只在我自己的代码(我已经替换)中调用 LoadString 时被调用,而不是从 MFC 库代码中调用。我可以尝试更新资源,但这似乎有点骇人听闻。是否可以重定向 LoadString 找到其字符串的位置?

【问题讨论】:

【参考方案1】:

我不确定如何覆盖 LoadString,但最常用的本地化方法是创建资源 DLL 并使用它。参考this。

关于使用资源 DLL 的优点,请阅读 this

【讨论】:

以上是关于覆盖 MFC 应用程序的 LoadString的主要内容,如果未能解决你的问题,请参考以下文章

WTL强制资源从非mfc应用程序中的dll加载的方式? (我们使用的是 WTL/ATL,不是直接的 win32)

为啥 CString::LoadString 在我的应用程序的主模块(.exe)中有效,但在我的 extensionDLL 中无效?

从main()调用await rootBundle.loadString(…)时,Flutter应用程序挂起

MFC面板和窗口把手

MFC 应用程序标题

Windows API一日一练 20 LoadString LoadIcon和LoadCursor函数