Newsgroup: it.comp.programmare.win32
Titolo: come faccio a...

...compilare i file .rc con gcc?
grazie


I file .rc del VISUAL C++ intendi?
Luc.

lo ha comprato la M$ quel formato file?
i file .rc sono dei "Resource Script", ovvero dei file di testo dove sono
descritte le risorse da includere nell'exe
non sono un formato proprietario, quindi non sono "del VISUAL C++"... ;-)
si compilano con RC (il programma appunto per compilarli, che li trasforma
in res, file delle risorse binari, che sono pronti per essere linkati ai
vari OBJ per produrre l'exe)
--
ciao
..::[xaero]::..


vari OBJ per produrre l'exe)
Ma con gcc puoi compilare programmi per windows?
Luc.

 Ma con gcc puoi compilare programmi per windows?
ci sono vari porting del gcc
io appena iniziato a prog. usavo gcc-mingw32 che compilava exe a 32-bit per
win


>>>>> "L" == Luc  <TOGL...@katamail.com-TOGLI> writes:
L> Ma con gcc puoi compilare programmi per windows?
Esistono dei port  di GCC per Windows. Uno è  il mingw (Minimalist Gcc
for Windows [  + o - ]) che  non ho mai usato, l'altro è  il gcc della
Cygnus -ovvero  Red Hat- incluso  nel Cygwin.  Lo scopo  principale di
questo  compilatore è il  port di  programmi Unix  sotto Windows  ma è
perfettamente  in grado  di generare  applicazioni Windows  native. Ad
esempio  io mi  sono fatto  un  client POP  per prelevare  la posta  e
depositarla in una  mailbox in formato "Unix" che  apre una finestrina
per prendere i  dati di logon e  poi si piazza con una  icona nel tray
(icona che viene aggiornata).
Nel caso particolare i file rc  non vengono compilati dal gcc ma da un
tool  esterno  che sinceramente  non  ricordo,  si  dovrebbe fare  una
ricerca nell'archivo  della mailing  list di Cygwin  (io non  ho usato
file RC per principio, ho caricato le risorse grafiche da programma).
Problemi riscontrati :
	col runtime del gcc creare un processo con CreateProcess() nel
	loop di gestione dei messaggi può essere una noce (la system()
	però va perfettamente, quindi anche fork() ed exec()...)
	strip  rende le dll  inutilizzabili e  può rompere  le scatole
	anche con gli  eseguibili, però se non li  rovina li riduce di
	molto :)
	Alcune cose (i.e.  le pipe)  sono, per l'utente, più lente che
	in  unix ed un  accesso pesante  ai file  può evocare  lo blue
	screen of death. Ad esempio lo script
# Script begins
echo "Inizializzazione"
cat > coll_a.html < /dev/null
cat > coll_b.html < /dev/null
cat > coll_c.html < /dev/null
cat > coll_d.html < /dev/null
cat > coll_ef.html < /dev/null
cat > coll_g.html < /dev/null
cat > coll_hijk.html < /dev/null
cat > coll_l.html < /dev/null
cat > coll_m.html < /dev/null
cat > coll_n.html < /dev/null
cat > coll_op.html < /dev/null
cat > coll_qr.html < /dev/null
cat > coll_s.html < /dev/null
cat > coll_tu.html < /dev/null
cat > coll_vw.html < /dev/null
cat > coll_xyz.html < /dev/null
cat > coll_a.tmp < /dev/null
cat > coll_b.tmp < /dev/null
cat > coll_c.tmp < /dev/null
cat > coll_d.tmp < /dev/null
cat > coll_ef.tmp < /dev/null
cat > coll_g.tmp < /dev/null
cat > coll_hijk.tmp < /dev/null
cat > coll_l.tmp < /dev/null
cat > coll_m.tmp < /dev/null
cat > coll_n.tmp < /dev/null
cat > coll_op.tmp < /dev/null
cat > coll_qr.tmp < /dev/null
cat > coll_s.tmp < /dev/null
cat > coll_tu.tmp < /dev/null
cat > coll_vw.tmp < /dev/null
cat > coll_xyz.tmp < /dev/null
echo "genero tmp"
while read a
do
a=`echo $a | tr -d "\""`
b=`echo $a | cut -c 1,1`
case $b in
a | A)
    echo $a >> coll_a.tmp
    ;;
b | B)
    echo $a >> coll_b.tmp
    ;;
c | C)
    echo $a >> coll_c.tmp
    ;;
d | D )
    echo $a >> coll_d.tmp
    ;;
e | E | f | F)
    echo $a >> coll_ef.tmp
    ;;
g | G)
    echo $a >> coll_g.tmp
    ;;
h | H | i | I | j | J | k | K)
    echo $a >> coll_hijk.tmp
    ;;
l | L)
    echo $a >> coll_l.tmp
    ;;
m | M)
    echo $a >> coll_m.tmp
    ;;
n | N)
    echo $a >> coll_n.tmp
    ;;
o | O | p | P)
    echo $a >> coll_op.tmp
    ;;
q | Q | r | R)
    echo $a >> coll_qr.tmp
    ;;
s | S)
    echo $a >> coll_s.tmp
    ;;
t | T | u | U)
    echo $a >> coll_tu.tmp
    ;;
v | V | w | W)
    echo $a >> coll_vw.tmp
    ;;
x | X | y | Y | z | Z)
    echo $a >> coll_xyz.tmp
    ;;
esac
done
echo "genero thml"
for i in a b c d ef g hijk l m n op qr s tu vw xyz
do
    echo "Lettera "$i
    sed -e "s/%/Colleghi per iniziale del cognome ( "$i" )/g" < ../head.html > coll_$i".html"
    awk -F\; '{ print "<B>" $1 " " $2 "</B> (Mat: " $3 ") " ;
	        if( $4 != "")
		    print "Societ&agrave;: " $4" ";
		if( $6 != "")
		    print "Sede: " $6 " ";
 		if( $7 != "")
		    print "e-mail: " $7 " ";
		if( $8 != "")
		    print "Tel.: " $8 " ";
                if( $9 != "")
		    print "Int.: " $9 " ";
		if( $10 != "")
		    print "Cel.: " $10 " ";
		print "<hr>"}
	      END{print "</BODY></HTML>"}' < coll_$i".tmp" >> coll_$i".html"
done
 
rm coll_a.tmp
rm coll_b.tmp
rm coll_c.tmp
rm coll_d.tmp
rm coll_ef.tmp
rm coll_g.tmp
rm coll_hijk.tmp
rm coll_l.tmp
rm coll_m.tmp
rm coll_n.tmp
rm coll_op.tmp
rm coll_qr.tmp
rm coll_s.tmp
rm coll_tu.tmp
rm coll_vw.tmp
rm coll_xyz.tmp
# script ends
	lo evoca sistematicamente sulla mia macchina.
\begin{avviso}
 
Attenzione: Leggersi lo header riguardo al mio e-mail!
Warning: read header for infos about my e-mail.
\end{avviso}
+----------------------------------------------------------------+
| Gian Uberto Lauri * "So, are you working on fixing that bug    |
| 
sa...@eng.it
      *  *now* or leaving it until later ?" - YES  |
+----------------------------------------------------------------+