(Text-)Ressourcen
-
Ich habe ein Programm, das kompiliere ich mit folgender Ressource:
Liste TEXT "liste.txt"
Funktioniert auch soweit ganz gut. Mit folgendem Code verarbeite ich die Ressource dann:
char *szFormat,*szRes; HGLOBAL hRes; hRes = LoadResource(NULL,FindResource(NULL,"Liste","TEXT")); szRes = (char*)LockResource(hRes); szFormat = (char*)malloc((lstrlen(szRes)+1)*sizeof(char)); if(!szFormat){ Error(ERR_MEM); return; } lstrcpy(szFormat,szRes); FreeResource(hRes);
Funktioniert auch... nur mit einem Haken. Als letztes Zeichen ist sowohl bei szRes als auch bei szFormat ein '(', das nicht da sein sollte. Warum? Wie zum Geier kommt es da hin?
stimm etwas mit LoadResource / LockResource nicht?Das macht mich noch ganz wahnsinnig. Wo kommt diese verfluchte Klammer her und was macht die da?
-
Für was braucht man denn ne Text-Resource? Man kann doch #define nehmen, wenn man'n konstanten Text haben will...
Korrigiert mich, wenn ich falsch liegen sollte, und es wirklich was bringt, Texte über Resourcen zu organisieren.
cu
-
Das steht nun ja wirklich nicht zur Diskussion. Wenn du unbedingt 1240 Bytes als #define handhaben willst
(das ist nämlich die Größe von liste.txt)Wie kommt die Klammer rein? Sollte doch eigentlich nicht sein. Ich sehe auch keinen Fehler
-
Schon mal mit SizeofResource() probiert?
-
Genial, DANKE!
Damit funktioniert es einwandfrei!
-
MagiC Creator:
Textresourcen eignen sich hervorragend zur Internationalisierung. So hat man nur eine einzige Datei (die .rc datei), die man verändern muss, wenn man sein Programm übersetzen will. Sonst muss man sich mit zig defines rumschlagen, von denen man garantiert eins vergisst; und zwar das wichtigste, siehe Murphy's Gesetz.