gA函式(仅在Windows
98下有效)完成由Unicode到本地内码表的文字转换。
让我们来看一个程式,它使用三个字串,在讯息方块中显示三条错误资讯。RESOURCE.H表头档案为这些资讯定义了三个识别字:
#define IDS_FILENOTFOUND 1 #define IDS_FILETOOBIG 2 #define IDS_FILEREADONLY 3
资源描述档具有此字串表:
STRINGTABLE BEGIN IDS_FILENOTFOUND, "File %s not found." IDS_FILETOOBIG, "File %s too large to edit." IDS_FILEREADONLY, "File %s is read-only." END
C原始码档案也包含这个表头档案,并定义了一个显示讯息方块的函式(我假定szAppName是一个包含程式名称的整体变数)。
OkMessage (HWND hwnd, int iErrorNumber, TCHAR *szFileName) { TCHAR szFormat [40] ; TCHAR szBuffer [60] ;
LoadString (hInst, iErrorNumber, szFormat, 40) ; wsprintf (szBuffer, szFormat, szFilename) ;
return MessageBox ( hwnd, szBuffer, szAppName, MB_OK | MB_ICONEXCLAMATION) ; }
为了显示包含「file
not found」资讯的讯息方块,程式呼叫:
OkMessage (hwnd, IDS_FILENOTFOUND, szFileName) ;
自订的资源
Windows也定义了「自订资源」,这又称为「使用者定义的资源」(使用者就是您-程式写作者,而不是那个使用您程式的幸运者)。自订资源让连结.EXE档案中的各种资料更为方便,对取得程式中的资料也是如此。资料可以是您需要的任何格式。程式用於存取自订资源的Windows函式促使Windows将资料载入记忆体并传回指向它的指标。然後您就可以对程式做任何操作。您会发现对於储存和存取各种自己的资料,这要比把资料储存在外部档案中,再使用档案输入函式存取它要方便得多。
例如,您有一个档案叫做BINDATA.BI |