Anzeige:
Seite 2 von 2 ErsteErste 12
Ergebnis 16 bis 18 von 18

Thema: Mehrfachen Start einer Applikation verhindern - Konzept mit reinem C ohne Libs

  1. #16
    Registrierter Benutzer Avatar von panzi
    Registriert seit
    04.05.2001
    Ort
    Kottingbrunn
    Beiträge
    609
    Zitat Zitat von axeljaeger
    Macht das dann überhaupt noch Sinn, als Einsprungpunkt WinMain anstatt main zu nehmen?
    Tja, frag das MS. Jedenfalls muss man AFAIK WinMain verwenden, wenn man mit der Win32API Programmieren will.
    Intel Core 2 Duo CPU 2.66GHz; Nvidia GeForce 8 8800 GTS; 4GB RAM; Fedora 12; KDE-testing

  2. #17
    Registrierter Benutzer
    Registriert seit
    08.07.2002
    Beiträge
    719
    Mein Gedanke dazu war, dass eine Exe in Windows keine Exe, sondern in wirklichkeit eine DLL ist, die vom Explorer geöffnet wird und die Funktion WinMain aufgerufen wird. Dabei fällt mir ein: Wo ist dann überhaupt noch der Unterschied zwischen Exe und DLL? Kann ich eine Exe wie eine DLL öffnen und main() sagen? Ich glaube, KDE macht sowas, um Programme schneller starten zu lassen.

  3. #18
    Registrierter Benutzer Avatar von panzi
    Registriert seit
    04.05.2001
    Ort
    Kottingbrunn
    Beiträge
    609
    Zitat Zitat von axeljaeger
    Mein Gedanke dazu war, dass eine Exe in Windows keine Exe, sondern in wirklichkeit eine DLL ist, die vom Explorer geöffnet wird und die Funktion WinMain aufgerufen wird. Dabei fällt mir ein: Wo ist dann überhaupt noch der Unterschied zwischen Exe und DLL? Kann ich eine Exe wie eine DLL öffnen und main() sagen? Ich glaube, KDE macht sowas, um Programme schneller starten zu lassen.
    Kenn mich mit dem Thema (noch) nicht so gut aus, aber AFAIK verhält es sich so:
    Unter Win und auch unter Linux sind shared objects/dynamic link lib. (.so/.dll) im selben Format wie die bins/EXEs, nur das die letzteren eine definierte Einsprungsfunktion haben (ich denk lt. C-Standard eben main()). SOs/DLLs haben das nicht. Man kann z.B. jede Binärdatei mit dlopen() öffnen und Funktionen extrahieren, egal ob's jetzt eigentlich ne .exe/bin oder .dll/.so ist (hab ich schon probiert, funkt 1A ohne irgend einen Anstand).
    Man könnt eben auch ne .exe mit dlopen() laden und mian() mit "manipulieren" Parametern aufrufen.

    Wenn ich Blödsinn erzähle, bitte korrigieren!
    Intel Core 2 Duo CPU 2.66GHz; Nvidia GeForce 8 8800 GTS; 4GB RAM; Fedora 12; KDE-testing

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •