【发布时间】:2012-01-18 10:09:31
【问题描述】:
我需要以某种方式“国际化”用 VB6 编写的应用程序。此 I18n 仅适用于少数国家,用户知道,例如,他们应该使用美国小数分隔符 . 而不是逗号 ,。日期也是一个很常见的问题。
如果使用 .NET,我的方法是在应用程序启动到 en-US 时设置主线程的 CultureInfo。但是,在 VB6 中,我无法做到这一点(据我所知)。
以前有人遇到过这个问题吗?解决它的最佳方法是什么?从我的 POV 来看,最简单的方法是覆盖我的应用程序进程的用户区域设置,但我不知道如何在 VB6 中做到这一点......
编辑:此时我想要一种方法来覆盖我的用户定义的区域设置,仅用于我的流程
编辑#2:我试过了,但没用(我的设置是 pt-PT,小数点分隔符是逗号,我希望得到一个点(英文)):
Private Sub Form_Load()
SetAmerican
Dim test As Double
test = 1.23
MsgBox (test)
Unload Me
End Sub
Declare Function SetThreadLocale Lib "kernel32" (ByVal Locale As Long) As Long
Public Const LANG_EN_US = 1033
Public Sub SetAmerican()
Call SetThreadLocale(LANG_EN_US)
End Sub
【问题讨论】:
-
查看here helps中是否有任何内容
-
@MarkJ 似乎对我不起作用 :(
-
@Żubrówka 你是什么意思没有工作?你能展示一些代码或记录什么不起作用吗?
-
哦,“一种由我覆盖用户定义的区域设置的方法,仅用于我的过程”与“在 VB6 中处理区域设置的最佳方法”完全相反。最好的方法是尊重并接受用户的区域设置。
标签: .net vb6 internationalization