DLL & DLL_Prozess_Attach



  • Hallo,

    ich habe eine DLL (incl. DllMain() )geschrieben. Und die funktioniert auch.
    Explizite Bindung (LoadLibrary etc.).

    Im Prinzip brauch ich die Konstanten DLL_PROZESS_ATTACH/DETACH nicht. Welchen Unsinn kann man denn damit machen ? Was kann man vor das break setzen ?

    switch (reason)
    {
    case DLL_PROCESS_ATTACH:
    break;

    case DLL_PROCESS_DETACH:
    break;

    case DLL_THREAD_ATTACH:
    break;

    case DLL_THREAD_DETACH:
    break;
    }

    Kleines Beispiel wäre schön.

    Danke



  • Ich schüttel jetzt mal nur mit dem Kopf. 🙄
    Für's nächste Mal nimm Google oder gleich "die Quelle".



  • //



  • "Wenn Sie für Ihre DLL keine DllMain-Funktion schreiben, wir eine Minimalversion dieser Funktion aus der Laufzeitbibliothek verwendet."



  • Ups, hab vorhin falsch verlinkt. Hier ist der allgemeine Link. 😃

    [Edit] Wo hast denn das Zitat her? [/Edit]



  • ...glaube Visual C++ , Kap22 S. 497

    Was machen denn die Profis mit dem Zeug ?

    Bei mir steht's völlig sinnlos rum. Ginge ja auch ohne.



  • ... das ich mich nochmal melde

    Schreibt denn keiner DLL's und kann mir sagen, was sinnvollerweise unter
    ....
    case DLL_PROCESS_ATTACH:
    // Beispiel
    break;
    ...

    reingepackt wird

    Danke



  • Also ich hab bis jetzt schon ein paar geschrieben, aber die DllMain liegt bei mir immer brach. Hab's halt noch nicht gebrauchen können.



  • FdwReason schrieb:

    Schreibt denn keiner DLL's und kann mir sagen, was sinnvollerweise unter
    ....
    case DLL_PROCESS_ATTACH:
    // Beispiel
    break;
    ...

    reingepackt wird

    Die Frage ist unsinnig. Das ist in etwas so, als ob du fragen würdest, was sinnvollerweise in einen Backofen gepackt wird. Backpapier, oder Kuchenformen. Ein Braten. Jemand bewahrt vielleicht Töpfe im Backofen auf, wenn er aus ist.

    Worauf ich hinaus will: Was du reintust, kommt darauf an, was du gerade da drin brauchst.

    Wenn du weißt, wann DllMain aufgerufen wird, dann ist dir auch klar, dass dort dann der Code reingehört, der zu diesen speziellen Zeitpunkten ausgeführt werden soll. Eine allgemeingültige Antwort darauf gibt es nicht.



  • da kannste zum beispiel das Instancen-Handle der DLL für Verwendung in anderen Funktionen speichern aber der über mir hat recht du kannst auch fragen was man normalerweise für icons aufm desktop hat



  • Lesco schrieb:

    da kannste zum beispiel das Instancen-Handle der DLL für Verwendung in anderen Funktionen speichern

    kann ich aber auch mit

    GetModuleHandle(NULL);
    

    anfragen 😉

    Lesco schrieb:

    aber der über mir hat recht du kannst auch fragen was man normalerweise für icons aufm desktop hat

    guter vergleich 👍 😃



  • Also ganz normal verwenden. Wie bei jedem anderen Programm auch.

    In meinen Fall heißt das, ich kann auf die DllMain()-Funktion verzichten. Brauch sie nicht einbinden.

    MfG


Log in to reply