[VC++] Exe zugleich als DLL nutzen?

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4263
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: [VC++] Exe zugleich als DLL nutzen?

Beitrag von Chromanoid »

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?
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: [VC++] Exe zugleich als DLL nutzen?

Beitrag von dot »

Chromanoid hat geschrieben:Wie erkennt loadlibrary ob es sich um eine dll oder exe handelt?
Na am PE Header ;)
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: [VC++] Exe zugleich als DLL nutzen?

Beitrag von dot »

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.
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: [VC++] Exe zugleich als DLL nutzen?

Beitrag von eXile »

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.
Benutzeravatar
Krishty
Establishment
Beiträge: 8268
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [VC++] Exe zugleich als DLL nutzen?

Beitrag von Krishty »

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 … :/
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Jörg
Establishment
Beiträge: 296
Registriert: 03.12.2005, 13:06
Wohnort: Trondheim
Kontaktdaten:

Re: [VC++] Exe zugleich als DLL nutzen?

Beitrag von Jörg »

Kannst ja auch auf die .exe verzichten und statt dessen eine Batch-Datei mitliefern, die nur eine rundll32-Zeile enthaelt....
Helmut
Establishment
Beiträge: 237
Registriert: 11.07.2002, 15:49
Wohnort: Bonn
Kontaktdaten:

Re: [VC++] Exe zugleich als DLL nutzen?

Beitrag von Helmut »

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.
Antworten