有一个问题,在资源文件中的string table中建了两种语言的字符串资源,ID相同,但是怎样在程序中根据需要选择不同语言的字符串呢?他们ID是一样的啊。 FindResourceEx好像每次只能选择一个字符串资源,而且选择后用LoadResource()得到的字符串资源句柄也不知道怎么用,向高手同志寻求解决方法,谢了先!

解决方案 »

  1.   

    一般来说,系统自己回根据OS的语言来选择相应的资源,如果你想控制它,自己来选的话,用
    HRSRC FindResourceEx(
      HMODULE hModule, // module handle
      LPCTSTR lpType,  // resource type
      LPCTSTR lpName,  // resource name
      WORD wLanguage   // resource language
    );
    然后用 
    HGLOBAL LoadResource(
      HMODULE hModule, // module handle
      HRSRC hResInfo   // resource handle
    );再用
    LPVOID LockResource(
      HGLOBAL hResData   // handle to resource
    );这个指针就是 字符串指针,用
    DWORD SizeofResource(
      HMODULE hModule, // module handle
      HRSRC hResInfo   // resource handle
    );
    取得长度,用
    char ch[] = new char[nSize+1];
    strncpy(ch, chRes, nSize);ch[nSize]=0;这样就可以了,但别忘了用完之后删除它哟!