有没有办法在运行时更改“LOCALE_SISO639LANGNAME”?
我想在运行时为“LOCALE_SISO639LANGNAME”设置另一种语言,当由“GetLocaleInfo”查询时,它应该是新语言,而不是系统默认语言。
顺便说一句,您似乎无法使用“SetLocaleInfo”设置“LOCALE_SISO639LANGNAME”。
预先感谢您的关心。
最佳答案
LOCALE_SISO639LANGNAME
是一个常量(C++ #define),因此您无法在运行时真正更改它。如果我对您的理解正确,则希望将此值替换为第一个参数来获取GetLocaleInfo调用,以便有效地将另一个参数传递给API。
如果这一切都在代码中就没什么大不了的(代码编辑和二进制重建确实可以完成这项工作),我可以假设您希望这对只在二进制文件中起作用的东西起作用。
如果上面的猜测是正确的,并且特别是您只希望针对过程进行猜测,则可以挂钩GetLocaleInfo入口点并对其进行修补,以拦截调用并更新参数。但是,使用它并非易事或安全,您必须了解自己在做什么。