2009-06-05 5 views
0

Que je charge un fichier .rc existant ou que j'en crée un nouveau, Visual Studio a cette étrange tendance à séparer les tables Tring. Je n'ai pas vraiment compris s'il y avait un modèle, bien que j'ai remarqué qu'il semble avoir tendance à commencer à des ids divisibles par des puissances de deux là où c'est possible. Étant donné que le compilateur de ressources ne se soucie pas vraiment de la façon dont ils sont décomposés, il semble étrange que cela les sauve comme ça. Quelqu'un sait pourquoi?Pourquoi Visual Studio 2005 sépare-t-il les stringtables lors de la sauvegarde/création de fichiers .rc?

STRINGTABLE 
BEGIN 
    1  "String" 
    2  "String" 
    3  "String" 
    4  "String" 
    5  "String" 
    6  "String" 
    7  "String" 
END 

STRINGTABLE 
BEGIN 
    8  "String" 
END 

Répondre

2

Se reporter à la section Remarques de l'article suivant sur STRINGTABLE sur MSDN:

Remarques

RC alloue 16 chaînes par section et utilise la valeur de l'identifiant pour déterminer quelle section est de contenir la chaîne . Les chaînes dont les identifiants ne diffèrent que dans les 4 derniers bits sont placées dans la même section. Pour plus d'informations, voir Q196774.

http://msdn.microsoft.com/en-us/library/aa381050(VS.85).aspx

0

Je pense qu'il ya deux règles: il ne peut y avoir plus de 16 chaînes dans un STRINGTABLE et VS aime mettre les ID consécutifs dans la même table.

+0

Je ne suis pas sûr que ce soit le cas. Quoi qu'il en soit, cela ne me dit pas vraiment pourquoi il fend les cordes. – Brian

Questions connexes