ja hab ich dann auch gesehen. ein bisschen ähnlicher use case mehr nicht...
Wie erkennt loadlibrary ob es sich um eine dll oder exe handelt?
[VC++] Exe zugleich als DLL nutzen?
- Chromanoid
- Moderator
- Beiträge: 4263
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
- dot
- Establishment
- Beiträge: 1734
- Registriert: 06.03.2004, 18:10
- Echter Name: Michael Kenzel
- Kontaktdaten:
Re: [VC++] Exe zugleich als DLL nutzen?
Na am PE Header ;)Chromanoid hat geschrieben:Wie erkennt loadlibrary ob es sich um eine dll oder exe handelt?
- dot
- Establishment
- Beiträge: 1734
- Registriert: 06.03.2004, 18:10
- Echter Name: Michael Kenzel
- Kontaktdaten:
Re: [VC++] Exe zugleich als DLL nutzen?
Gerade fällt mir noch was ein: Mann müsste natürlich auch sicherstellen, dass die exe eine Relocate Table hat, sonst ist es von vornherein ein reines Glücksspiel.
Re: [VC++] Exe zugleich als DLL nutzen?
Daran hatte ich auch schon gedacht; zumindest deckt sich das mit der gerade entdeckten Tatsache, dass es unter x64 immer funktioniert (dort ist ASLR Pflicht, dementsprechend wird immer eine Relocation Table gebaut). Jetzt habe ich unter x86 versucht, das ganze mit /DYNAMICBASE zu linken. Leider ohne Erfolg. Aber ich schau mal weiter, denn das ist bisher die plausibelste Erklärung.
- Krishty
- Establishment
- Beiträge: 8268
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: [VC++] Exe zugleich als DLL nutzen?
Mit statischen Daten unter x86 kriege ich es nicht hin. Schon der blanke Zugriff auf nicht-konstante statische Daten crasht mit einer Zugriffsverletzung, obwohl die zu ladende Exe relocatable kompiliert wurde. Verdammt.
Dann werde ich wohl die Zähne zusammenbeißen und eine DLL ausliefern müssen … :/
Dann werde ich wohl die Zähne zusammenbeißen und eine DLL ausliefern müssen … :/
Re: [VC++] Exe zugleich als DLL nutzen?
Kannst ja auch auf die .exe verzichten und statt dessen eine Batch-Datei mitliefern, die nur eine rundll32-Zeile enthaelt....
Re: [VC++] Exe zugleich als DLL nutzen?
Ich verstehe das Problem irgendwie nicht. Mach doch einfach schnell ne neue Projektkonfiguration, exportiere die benötigten Funktionen und WinMain via Präprozessor und kompilier das Projekt als DLL. Dann gibste die DLL weiter und kannst die Konfig wieder löschen. Ne Sache von 10 Minuten.