Fortran Coder

标题: 求助!string table 如何使用? [打印本页]

作者: sunls    时间: 2014-12-5 14:29
标题: 求助!string table 如何使用?
请问在quickwin程序中怎么使用string table?求哪位大神给个例子。谢谢!
作者: vvt    时间: 2014-12-5 21:56
可以用 LoadString 这个 API 函数
[Fortran] 纯文本查看 复制代码
Module Mod_String
  Implicit None
contains
  Character(Len=512) function GetString(Code)
          Use User32,only:LoadString
    Use Kernel32,only:GetModuleHandle,NULL
          Integer res
          Integer , Intent(In) :: Code
          GetString=''
    res = LoadString( GetModuleHandle(NULL) , Code , GetString , 100 )
          GetString=GetString( 1 : Len_Trim(GetString)-1 )
        End Function GetString
End Module Mod_String
  
  Program www_fcode_cn
    use Mod_String
    Implicit None
    write(*,*) Trim(GetString(1))
  End Program www_fcode_cn

作者: sunls    时间: 2014-12-5 23:35
谢谢回复。可我说的是资源工具条中有个“string table”这种类型,这应该怎么用。谢谢。
作者: vvt    时间: 2014-12-5 23:38
我说的就是它
作者: 百事可乐    时间: 2014-12-6 16:16
怎么编辑 string table 相信你已经会了.
每个string都有一个ID,用2楼的代码,传入ID即可获得字符串.
作者: sunls    时间: 2014-12-7 11:47
我是初次接触这个。string table 能像对话框那要用吗?
作者: vvt    时间: 2014-12-7 12:06
东西不一样,为啥非要要求同样的用法?

你不能要求像使用杯子一样使用电视机....
作者: sunls    时间: 2014-12-7 12:34
谢谢。不是非要相同的用法,而是不知道string table能不能那样用,或者说可用在什么场合。
作者: vvt    时间: 2014-12-7 13:13
本帖最后由 vvt 于 2014-12-7 13:15 编辑

5楼已告知你用法。
string table 和 对话框 完全不是一回事。不要对比两者的用法。(我也不知道你说的“能不能那样用”是什么意思)
string table 说白了,就是把字符串统一到一个地方管理。通常在需要多语言版本的软件时使用。
比如,以前 write(*,*) '开始计算' 如果要改成英文版,就要改动代码,比如写成,write(*,*) 'Begin Calc'
而使用了 string table,代码里统一写成: write(*,*) GetString( IDS_BEGIN_CALC )
这样,中文版的资源和英文版的资源可以都放在一起。当用户在英文系统上使用时,会输出 Begin Calc,在中文系统上使用时,会输出 开始计算
====
我建议你先不要问,先按照沙发和5楼的方法实现一次 String Table 的使用,然后你瞬间就明白了


作者: sunls    时间: 2014-12-7 14:39
知道了,谢谢。




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2