这是后续行动
that question
.
当var-locale-user-default作为参数提供时,什么会使vardatefromstr(来自oleaut32.dll)无法使用当前用户的区域设置?
因此,我们的应用程序遇到了很多问题。
在有问题的系统上,如果我们执行以下代码:
procedure TForm1.Button3Click(Sender: TObject);
var V : Variant;
dte : TDateTime;
begin
V := Label28.Caption;
dte := VarAsType(V,varDate) ; //Implicitly calls VarDateFromStr
V := dte;
Label28.Caption := V; //Implicitly calls VarBStrFromDate
end;
Label28以标题“11-05-2010”开头,每次通话时标题将从11-05-2010交替到05-11-2010。
在给定的系统上,getlocalestr(getthreadlocale,locale_shortdate,'m/d/yy')返回“dd-mm-yyyy”(当前用户的短日期格式)
问题发生在Winxp SP3上。(尽管我们的应用程序没有在任何其他操作系统版本上使用,但不能说明它是否特定于该版本)。
我最初的想法是它可能与安全相关(用户的安全是气密的),但我还不能证明它。