求助!string table 如何使用?
请问在quickwin程序中怎么使用string table?求哪位大神给个例子。谢谢! 可以用 LoadString 这个 API 函数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 谢谢回复。可我说的是资源工具条中有个“string table”这种类型,这应该怎么用。谢谢。 我说的就是它 怎么编辑 string table 相信你已经会了.
每个string都有一个ID,用2楼的代码,传入ID即可获得字符串. 我是初次接触这个。string table 能像对话框那要用吗? 东西不一样,为啥非要要求同样的用法?
你不能要求像使用杯子一样使用电视机.... 谢谢。不是非要相同的用法,而是不知道string table能不能那样用,或者说可用在什么场合。 本帖最后由 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 的使用,然后你瞬间就明白了
知道了,谢谢。
页:
[1]