用VB写的ERP系统为了适合简繁体同时可以使用,利用了资源文件。首先作了两个资源文件resource_j与resource_f,并且生成了INI文件,其中有参数LANGUAGE。想在程序启动时,判断INI文件中LANGUAGE的值,当为Jian时,加载resource_j.res,当为Fan时,加载resource_f.res,但不知加载资源文件的语句应该怎样写?

解决方案 »

  1.   

    资源文件应该是打包后已经加入到你的EXE文件里的,不能动态添加的
      

  2.   

    http://www.china-askpro.com/msg12/qa35.shtml
      

  3.   

    LoadResData 函数
    用以从资源 (.res) 文件装载若干可能类型的数据,并返回一个 Byte 数组。
    LoadResData(index, format)LoadResPicture 函数    
    用以从资源 (.res) 文件装载位图、图标或光标。
    语法
    LoadResPicture(index, format)LoadResString 函数
    用以从资源 (.res) 文件装载字符串。
    语法
    LoadResString(index)
    以上是从资源文件中读取资源的例子,VB中在一个工程里只能加入一个资源文件。资源文件是随程序编译的,编译后动态地从磁盘的.res文件中读好象是不行吧。你可以通过资源文件中的ID来加以区分不同的语种,如简体ID从0001-1000,繁体从1001到2000,这样可以区分开吧。对于这个问题在MSDN中有着比较详细的说明,你可以看一下。
      

  4.   

    最好就是从INI文件里读,然后判断就是了
      

  5.   

    资源文件应该是打包后已经加入到你的EXE文件里的,不能动态添加的.
    LoadResString 函数
    用以从资源 (.res) 文件装载字符串。
    语法
    LoadResString(index)
      

  6.   

    VB中资源文件是不能动态添加的。但是你说的这个问题可以这样解决:
    首先你把你所有的资源放到一个资源文件里使用不同的ID号(比如:简体从1000开始编号,繁体从5000开始编号。);
    然后在使用的过程中根据你INI文件中的值加载不同的资源就OK了(比如:定义一个全局变量ResIndex,在程序启动时,判断INI文件中LANGUAGE的值,当为Jian时,ResIndex=0,当为Fan时,ResIndex=4000,在你使用的时候就变成如下样子:LoadResString(index+ResIndex),这样就可以很灵活地控制了。)。
      

  7.   

    LoadResPicture 函数 用以从资源 (.res) 文件装载位图、图标或光标。
    LoadResData 函数 用以从资源 (.res) 文件装载若干可能类型的数据,并返回一个 Byte 数组。
    LoadResString 函数  用以从资源 (.res) 文件装载字符串。
      

  8.   

    ww_wyc(wen)说得对
    只能这样做
      

  9.   

    Option Explicit
    Const RES_COUNT As Integer = 2 '资源文件个数 这里为了 演示只有2个资源文件
    Dim m_strResString(RES_COUNT - 1) As String '资源字符串缓冲区
    Private Sub LoadRes()
    Dim strLang As String
    Dim nBase As Integer ' 资源文件索引的基数
    Dim lngResCount As Long
    Dim i As Integer
    '...读取ini文件
    If strLang = "jan" Then
        nBase = 1000 '简体重 1000开始
    Else
        nBase = 2000 '繁体从2000开始
    End If
    For i = nBase To nBase + RES_COUNT - 1
        m_strResString(i - nBase) = LoadResString(i)
    Next
    '每个控件的tag属性设置(设计的时候设置)的是 资源文件的索引 譬如这里Command1.Tag=0
    Command1.Caption = m_strResString(CLng(Command1.Tag))
    Command2.Caption = m_strResString(CLng(Command2.Tag))
    '....
    End Sub