Qualcuno ha notato che se si importa un exe come risorsa viene rideterminato e sembra che anche l'intestazione PE venga ricostruita?C++ visual studio 2010 exe in risorsa get Rebased?
Ci sono volte che questo è irritante. Qualcuno sa come disabilitare il rebasing !?
passaggi per riprodurre in C++:
1) compilare un mondo ciao e manualmente il suo indirizzo di base (in proprietà) per Diciamo 0x1000000
2) fare un secondo progetto e comprendono il mondo ciao in risorse. Inoltre, imposta manualmente il suo indirizzo di base come sopra.
3) costruire secondo progetto
4) estrarre l'exe da risorse e verificare con un editor Pe! diventa impostato su 0x400000. Perché?!
secondo le http://msdn.microsoft.com/en-us/library/hh7adf4f.aspx, si potrebbe avere problema con la configurazione: si prega di aggiungere i parametri del linker . Ad ogni modo, penso che ci siano molti programmi che possono rebase PE, quindi magari prendere in considerazione anche di provarli ... –
editbin.exe, per quanto ho capito, è un programma esterno che può essere eseguito dopo la compilazione. La ricostruzione dell'intestazione PE non avrà alcun effetto sulla situazione di cui sopra. Hai perso il punto. – Ray
Né il compilatore di risorse né le API di risorsa sanno nulla dei file EXE. Li trattano proprio come un blob di byte. Di conseguenza, non possono fare nulla per cambiare l'indirizzo di base. Il problema sta altrove. –