VB6.0自动化错误

时间:2014-11-14 15:31:45

标签: vb6

我目前正在开发一个VB6.0应用程序,它提供了一个非常一致的自动化错误(有时代码会在几次成功迭代后崩溃)。

Dim example As String

...

On Error GoTo ERROR
example = UCase$(Replace(form.UniTextBox(1).Text, " ", ""))
ERROR:
debug.print("ERROR: " & Err.description)

我已识别的代码部分导致自动化错误。当计算机设置为运行Windows 7的波兰语时,根本原因似乎存在。设置英语语言环境时没有问题。

导致此问题的原因是什么?

任何建议或提示都将不胜感激。

感谢

1 个答案:

答案 0 :(得分:0)

控件是ANSI而不是unicode。 COM是unicode而不是ANSI。该字符串由Windows和VB来回转换。

控件的Windows是ANSI或Unicode。当大多数计算机只有ANSI窗口时,VB6被写入,因此所有API调用(创建窗口需要)都是ANSI调用。将unicode发送到ANSI窗口,Windows将首先将其转换为ANSI。要求VB执行API调用或表单,它会将unicode字符串转换为ANSI。

请参阅StrConv,字节数组可以充当unicode字符串,还可以在非区域设计程序的区域选项中查看系统设置。