Announcement

Collapse
No announcement yet.

DLL Problem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DLL Problem

    Hy,<bR>
    ich hab ein kleines Problem.<bR>
    Ich wollte in mein Projekt eine DLL einladen<bR>
    uhnd hah mich mal bei google Schlau gemacht.<bR>
    Nachdem ich ein funktionierendes Beispiel<br>
    abgeändert habging es nciht mehr :-(<br>
    <bR>
    <pre>
    void __fastcall TfrmMainForm::btnDll1Fnct1Click(TObject *Sender)
    {
    typedef VOID (*DLL1PROC1)(LPTSTR);

    HINSTANCE hinstLib;
    DLL1PROC1 Dll1Proc1Add;

    // Hole das Handle der DLL
    hinstLib = LoadLibrary("Dll1.DLL");

    // Gibt es ein DLL-Handle, hole die Adresse der Funktion
    if (hinstLib != NULL)
    {
    Dll1Proc1Add = (DLL1PROC1) GetProcAddress(hinstLib, "Dll1Fnct1");
    Dll1Proc1Add("HGallo");

    // DLL freigeben
    if (FreeLibrary(hinstLib) == true)
    {
    //ShowMessage("Hallo");
    }
    }
    }
    //---------------------------------------------------------------------------
    </pre>
    Nehme ich allerdings den Komentar bei ShowMessage weg<br>
    gehts es wieder. Die dll tut garnichts.<br>
    Quelltext der dll:<bR>
    <pre>

    VOID __stdcall Dll1Fnct1(LPTSTR lpszMsg)
    {
    }
    //---------------------------------------------------------------------------

    bzw header:

    extern "C" __declspec(dllexport) VOID __stdcall Dll1Fnct1(LPTSTR lpszMsg);

    </pre>
    Ich hoffe mir kann einer von euch helfen.<bR>
    <br>
    <b>mfg.: </b> Andre´

  • #2
    Was immer auch die Funktion Dll1Fnct1 möglicherweise durchführen kann (Function an der Adresse: Dll1Proc1Add mit dem von Dir eingesetzten Übergabeparameter LPTSTR lpszMsg, so ist der if-Block in Deinem Beispiel nur dazu geeignet, um zu zeigen, das der Rückgabewert von FreeLibrary mit dem Parmeter hinstLib true ist (Die Dll wurde erfolgreich aus dem Speicher herausgeladen).

    Gruß,
    Uw

    Comment


    • #3
      Danke für deine Antwort,<bR>
      aber ich glaube ich habe mich falsch ausgedrückt.<bR>
      Die Function wird erfolgreich aufgerufen <bR>wenn der Kommentar weg ist und die <bR>ShowMessage Funtcion oder sonst irgendwas anderes wie z.B. Label1->Caption="Ba"; da steht.<bR>
      (bis auf Sleep(x))<br>
      Komentiere ich das ShowMessage aus Stürzt die das Programm ab.<bR>
      <bR>
      <b>mfg.: </b>Andre&#180

      Comment


      • #4
        Wenn das wirklich deine ganzher DLL ist, ist das zuwenig. Da fehlt der Header der DLL und auch die Funktion sollte wenigsten irgendwas machen.

        http://home.snafu.de/christian.marquardt/tutorials.8/8_dll.htm
        Christian

        Comment


        • #5
          Hy,<bR>
          ich habe das ganze aus einem beispiel <bR>
          zum erstellen einer dll bzw. auch zum nutzen.<bR>
          Ich bin dann her gegangen und habe alles raus geschnitten was irgendwie nicht direkt mit der
          DLL zu tun hatte bis hinterher das übrieg blieb.<bR>
          Habe ich in der Function etwas stehen dasnn wird das auch ausgeführt und dann stürzzt das pogramm erst ab, vorrausgesetzt das ShowMessage steht im KOmmentar.<bR>
          Ihc habe mir die Erklärung auf diener Seite angeguckt, allerdings bekomme ich daraus ncihts
          Kompiliert.<bR>
          Könntest du mir vielciht ein beispiel schicken.
          Einmal die DLL und einmal ein programm welches diese aufruft.<bR>
          Wäre echt super.<bR>
          <BR>
          <b>mfg.: </b>Andre&#180

          Comment


          • #6
            Ups <b>:-)</b><bR>
            ich hab wohl vergessen meine e-mail Adresse<bR>
            beizufügen, dann kann das ja nix werden.<bR>
            Wäre echt super nett wenn mir das jemand schiken könnte. <bR>
            <h1><b>THX</b></h1><bR>
            <br>
            <b>mfg.: </b> <font color="#00FF00">Andre`</font&gt

            Comment


            • #7
              Schicke ich heute aben
              Christian

              Comment


              • #8
                *** Schicke ich heute abend ***

                wohin?

                :-
                Günther

                Comment


                • #9
                  Gute Frage, danke, dachte das Grüne ist ein Mailto.

                  Also @Andre

                  Ohne Adresse nix Mai
                  Christian

                  Comment


                  • #10
                    lo

                    Comment


                    • #11
                      ups, *schäm*<bR>
                      ich bin auch ein Trottel <bR>
                      vergesse ich die gleich 2 mal.<br>
                      <bR>
                      [email protected]<bR>
                      <bR>
                      <b>mfg.: </b> <font color="#00FF00">Andre`</font&gt

                      Comment


                      • #12
                        Ist unterwege
                        Christian

                        Comment


                        • #13
                          Hy,<b>
                          hab die dll bekommen :-)<bR>
                          vielen dank.<bR>
                          <bR>
                          mfg.: Andre&#180

                          Comment

                          Working...
                          X