Newsgroup: it.comp.lang.c++
Titolo: AIUTO: problemone in traduzione (x esperti di risorse)

Ciao a tutti,
ho un guaio con la traduzione di un prg, spero che qualcuno possa
darmi una mano in merito (posso offrirgli una pizza... :-))
Ecco la spiegazione:
-------------------------------------------------------
HO URGENTE BISOGNO DI RISOLVERE QUESTO PROBLEMA!!!
CI STO PERDENDO DIETRO IL SONNO :-(((((
Dovevo tradurre inglese->italiano un programma per win. a 16 bit che
fa uso delle risorse. 
Ho individuato il file di risorse dove sono contenute
finestre/menu/stringhe in inglese e ne ho tradotte qualcuna; quindi mi
sono accertato che il programma accettasse la traduzione senza
lagnarsi (l'ho lanciato una volta) e quindi mi sono messo a tradurre
tutto (4000 stringhe+200 dialoghi+20 menu tanto per dire).
Una volta finito il lavoro ho consegnato la DLL tradotta al tester il
quale ha riscontrato con mia grande sorpresa che il prg parte
correttamente ma dopo poche operazioni appare il messaggio "Il
programma ha incontrato un errore di memoria e dev'essere terminato" e
poi viene chiusa l'applicazione. Dapprima pensavo di aver commesso
qualche svista nella traduzione (ad es. aver perso qualche "%s" o
"%f"), ma poi mi sono reso conto che il problema non e' quello:
- L'errore si verifica casualmente durante il lavoro prima della
visualizzazione di una qualsiasi finestra, anche aprendo e chiudendo
piů volte la stessa dopo un po' si riceve l'errore.
- Con la DLL originale funziona tutto bene.
Ho pensato che ci fossero dei problemi con le lunghezze delle stringhe
(che in italiano sono piů lunghe e il file da 114kb e' passato a
121kb), ma non e' cosi'.
!!! Aprendo la DLL con il Borland Resource Workshop 4.5 e salvandola
immediatamente senza apportare alcuna modifica il file consuma uguale
a quello precedente ma L'ERRORE SI RIPETE COMUNQUE!! :-( <
Quindi direi che e' questo il nocciolo del problema.
Comparando la DLL originale con quella salvata chiaramente si hanno
contenuti diversi, ma ho pensato che forse si potesse trattare del
diverso ordine con cui vengono salvate le risorse all'interno della
DLL (il che e' del tutto irrilevante per il programma che le
utilizza).
Ho provato di tutto, ma veramente di tutto per farlo funzionare ma non
c'e' stato modo:
- Impostare data, ora, attributi con quelle della DLL originale
- Cambiare il target win3.0/win3.1/win32 della risorsa (quello
effettivo e' win3.1).
Devo risolverlo entro fine Maggio a tutti i costi, altrimenti avro'
buttato via ore e ore per la traduzione, i soldi, i clienti e la stima
di me stesso (quella l'ho gia un po' persa...)
--------------------------------------------------------
Qualcuno mi ha suggerito che forse la DLL e' stata compilata con un
prodotto Microsoft, che non e' compatibile con il formato salvato dal
compilatore di risorse Borland.
Ho il RC.EXE Microsoft, ma quello mi crea file .RES o .EXE, non mi
permette di modificare le DLL!! :-( Come fare? Forse nei vecchi Visual
C++ c'e' un Resource Workshop della Microsoft?? (i prodotti nuovi
vanno solo a 32bit mentre a me ne serve uno che compili a 16bit).
SOB!
Grazie per la pazienza di aver letto fino a qui!
Ogni suggerimento e' bene accetto!
(per favore fatemi un CC in e-mail).
Remo Franceschelli - 
r.franc...@bo.flashnet.it
http://www.geocities.com/SiliconValley/Lakes/7668/

(per favore fatemi un CC in e-mail).
ok, fatto.
Gianpaolo Bottin
- Live Long and Prosper -

 CI STO PERDENDO DIETRO IL SONNO :-(((((
.................