建立一个 Language.ini文件,在其中放入各种语言的字段如 [chinese] lblUser=用户名 lblName=姓名 ...[japanese] lblUser=... lblName=... ...(呵呵,日文本人不会)[English] lblUser=UserName lblName=Name ...然后在程序中,由用户选择进行读写,读写INI文件的2个函数是这样的Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nsize As Long, ByVal lpFileName As String) As Long Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As String, ByVal lpFileName As String) As Long Function ReadINIFile(AppName As String, CurSection As String, NameString As String, ValType As Long) As Variant Dim ReturnStr As String * 255 Dim strLong As Long strLong = GetPrivateProfileString(AppName, CurSection, "", ReturnStr, 255, NameString)
ReadINIFile = Left(ReturnStr, strLong) If InStr(1, ReadINIFile, Chr(0)) Then ReadINIFile = Left(ReadINIFile, InStr(1, ReadINIFile, Chr(0)) - 1) End FunctionSub WriteINIFile(AppName As String, CurSection As String, SectionVal As String, FileName As String) WritePrivateProfileString AppName, CurSection, SectionVal, FileName End Sub
文件的
例如chinese.ini文件
lblUser=用户名
lblName=姓名 japanese.ini
lblUser=ユーザー
lblName=名前 选择不同的语言时
替换应用程序所对应的全部标签等
[chinese]
lblUser=用户名
lblName=姓名
...[japanese]
lblUser=...
lblName=...
...(呵呵,日文本人不会)[English]
lblUser=UserName
lblName=Name
...然后在程序中,由用户选择进行读写,读写INI文件的2个函数是这样的Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nsize As Long, ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As String, ByVal lpFileName As String) As Long
Function ReadINIFile(AppName As String, CurSection As String, NameString As String, ValType As Long) As Variant
Dim ReturnStr As String * 255
Dim strLong As Long
strLong = GetPrivateProfileString(AppName, CurSection, "", ReturnStr, 255, NameString)
ReadINIFile = Left(ReturnStr, strLong)
If InStr(1, ReadINIFile, Chr(0)) Then ReadINIFile = Left(ReadINIFile, InStr(1, ReadINIFile, Chr(0)) - 1)
End FunctionSub WriteINIFile(AppName As String, CurSection As String, SectionVal As String, FileName As String)
WritePrivateProfileString AppName, CurSection, SectionVal, FileName
End Sub
ReadINIFile("chinese", "blUser", App.Path + "\Language.ini" ,1)
这样就读取到了“用户名”
一般多语言就是改变菜单,TEXT等显示字符即可!使用资源文件比较的专业!
VB6.0中也支持"*.res"资源文件.可以把上面的.ini文件生成资源文件.在程序中可以直接使用.
用LoadResString()函数读取资源文件中的字符串.
关于LoadResString()函数的使用在VB6.0的MSDN中有详细解释,并有关于资源文件的实例.