DLL einbinden



  • Hallo,

    ich programmiere mit visual c++ in einer einfachen Quellcodedatei, ohne Header oder so.

    include....
    
    int main ()
    {
      //progcode
    }
    

    und möchte gern eine DLL einbinden von der ich nur die Basic deklaration kenne.

    Private Declare Sub Outp Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)

    kann mir jemand mit nem codeschnipsel weiterhelfen?? is neuland für mich (das mit den dlls)

    danke ralf 😕



  • du musst due dll mit LoadLibrary laden und dann die Addrsse suchen

    typedef void (__stdcall* Out32Proc)( int PortAddress, int Value );
    HMODULE hInOutP = LoadLibrary( "inpout32.dll" );
    Out32Proc Out32 = (Out32Proc)GetProcAddress( hInOutP, "Out32" );
    
    Out32( ..., ... );
    


  • Und kann man damit auch irgendwie ne einfache MessageBox
    aus ner DLL aufrufen ??



  • Die MessageBox API ist bei fast allen Compiler als lib dabei und kann damit direkt verlinkt werden. Deshalb brauchst das Ganze nicht mehr zu machen. Einfach die MessageBox API aufrufen.



  • Was meinst du damit ? Ich muss doch auch die Funktion aus der
    DLL laden in der die MessageBox gespeichert ist ?
    Oder meintest du jetzt diesen Teil vom Code ?

    typedef void (__stdcall* Out32Proc)( int PortAddress, int Value );
    


  • Nein, musst du nicht. Du muss DLLS nur dann laden, wenn ein Compiler die nicht statisch linken kann. MessageBox sollte jeder linken können.



  • Ok, aber ich möchte die DLL gerne so laden, weil
    da auch noch andere Funktionen enthalten sind.
    Aber wie komm ich an die MessageBox ran ?



  • #include <windows.h>
    

    hilft das?



  • Der Grund warum ich die DLL dynamisch laden will
    ist, dass ich die DLL zur Laufzeit der EXE auch gerne
    über ein Update austauschen möchte !
    Ihr meint doch ich soll sie in der EXE fest einbinden ?
    Aber genau das will ich ja nicht.

    Und dann bin ich wieder bei der Frage, wie ich eine
    Funktion einer DLL mit LoadLibrary aufrufen kann, die
    nur eine MessageBox anzeigt 🙄

    Oder ich verpeil hier total eure Hilfestellung und
    verstehts nur einfach nich 😡


Anmelden zum Antworten