Newsgroup: it.comp.programmare.win32
Titolo: Corso di Win32 online + domanda

Ciao a tutti!
Si sentiva proprio la mancanza di questo newsgroup!
Innanzitutto vi segnalo il mio sito su cui pubblico un minicorso di Win32.
L'indirizzo è 
http://loz.freeweb.org
 e poi cliccate su Area Computer e
quindi su Corso.
Se invece vi collegata dall'università è possibile che la connessione
all'indirizzo 
http://www.poli.studenti.to.it/~l.novara
 sia più rapida - per
tutti gli altri è un chiodo...
ATTENZIONE! Ho iniziato a buttare giù il testo meno di un mese fa, e nel
mezzo si sono inseriti, ahime, gli esami, così non ho avuto modo di
lavorarci adeguatamente. Appena esco dal girone degli esami completerò (e
revisionerò) i due capitoli che compaiono online, poi andrò avanti con tutto
il resto. Nel frattempo magari dateci un'occhiata, così mi dite quanto fa
schifo... e magari mi date qualche consiglio per migliorarlo.
Seconda cosa: come faccio ad appendere dati ad un eseguibile in formato
Win32, come fanno ad esempio gli autoscompattanti?
Grazie a tutti!
Ciao,
Lorenzo
---
"...un tipo perso dietro le nuvole e la poesia..."
Lorenzo "Loz" Novara
E-Mail: 
l...@iol.it
ICQ: 30416703
Web: 
http://loz.freeweb.org
 - 
http://www.poli.studenti.to.it/~l.novara

...

Ciao a tutti!

[...]
Che ne dici di "appendere" i dati in fondo all'EXE e di aprirlo poi in sola
lettura?
_mirko_

sfaticato!! (oltre che un mio amico.)
Ehilà, Willy!
Sul novello direi non proprio, perché con le API ci bazzico sin dai tempi di
Windows 3.1.
Piuttosto, sugli esami in fondo è vero, perché, anche se domani c'ho lo
scritto di Analisi sto qui a smanettare allegramente...
Comunque non ricambierò lo sputtanamento online dicendo a tutti gli
innumerevoli ed inenarrabili bachi che infili a profusione nei tuoi
programmi ;-)
Ciao e a risentirci.


>PGP public key avaiable<<
fingerprint: 14AA 1D7A 1653 E132 47CE  334C C9D3 6A97 208B A915

Sporchina come soluzione.
Scusa, cosa ci vedi di sporco? (_motivare_ si, _sentenziare_ no, please!)
Non c'e` nessun bisogno di modificare l'header dell'eseguibile o di creare nuovi
segmenti per appendere un file ad un eseguibile (che io sappia). 
Il programma diventa uno stub, come quelli che ci sono in ogni programma win32
(la parte dos che ti dice: 'questo programma non puo` girare in modalita`
ms-dos'), solo che e` a 32 bit. Si poteva fare in DOS e che io sappia niente
vieta di farlo in Win32 (forse NT pone dei limiti di accesso, dovresti
controllare).
Se invece crei un nuovo segmento dati nel programma, allora non so come puoi
controllarne il caricamento, (ma ci stiamo addentrando in particolari che forse
non conosco abbastanza).
_mirko_

segmenti per appendere un file ad un eseguibile (che io sappia). 
Scrivere sugli eseguibili che poi devono leggere se stessi e' una cosa
che fai senza il supporto di nessuna api o simili. Si usano i file di
risorse per fare queste cose. Fisicamente e' sempre quello che dici
tu, ma attraverso le risorse sei supportato dal sistema e non corri
rischi. Andare a scrivere negli eseguibile e' una soluzione alla dos.
Non ti so riportare un esempio di sorgente *.rc, pero' tempo fa ho
letto su it.comp.lang.c++ che i file di risorse supportano questa
cosa. Penso che anche tu sia d'accordo che questa tecnica e' di gran
lunga preferibile.


    Nuccio
A Presto, Mirko. (la discussione si fa interessante, perché non ci si infila
qualcuno che conosca meglio di noi la struttura di un eseguibile)
PS: Se la storia dell'anagrafe offende qualcuno ditemelo che cambio citazione.
_mirko_
PS: Se volete contattarmi in privato, NON ciucciatevi il calzino :).

dopo la fase di link dell'applicazione
Ok, la parte del WinZip SFX era vera (non usa le API che sto per dirvi), ma ho
scoperto in una delle mie scorribande nella documentazione dell'SDK alcune API
che mi contraddicono per il resto del discorso (ovvero esistono API che
permettono di cambiare una risorsa ad un eseguibile): 
* BeginUpdateResource
* UpdateResource
* EndUpdateResource
Pero` la mia domanda e`: tali API _funzionano_? (non le ho provate, ma mi sa che
con eseguibili UNICODE sono *nop*)
Credo comunque che il metodo di "appendere" dati alla fine dell'exe sia valido e
praticabile (aspetto smentite) e  rimane il mio metodo preferito, soprattutto
nel caso di file di grosse dimensioni, per i quali con il metodo "risorse" non
e` possibile frazionare il caricamento.


con eseguibili UNICODE sono *nop*)
ooops, pare che su Win95 siano nop in generale.
Fonte: "Steve Loughran's utterly unofficial and sporadically accurate list of
frequently asked questions about the Win32 API"
_mirko_
--
Knowledge is power.
"ciucciati.il.calzino" is antispam.