DLL erstellen und In Visual Basic aufrufen



  • Wer kann mir ein Grundgerüst für eine DLL geben?
    Am besten wäre eine DLL mit 2 Funktionen (zB. von VB übergebende Variable mit 2 adieren und an VB zurückgeben).
    Da ich nicht registriert bin bitte email an thomso@t-online.de
    Danke!!!

    [Diese Nachricht wurde von Thomso am 25-10-2000 editiert.]

    [ 09.07.2001: Beitrag editiert von: class CMarcus ]



  • Das geht wohl am schnellsten und besten mit COM.

    Zuerst solltest du ein neues ATL-Projekt erstellen(von mit aus mit MFC Unterstützung weil wir ja hier im MFC-Forum sind http://www.c-plusplus.net/ubb/ubb/smile.gif )

    Dann fügst du ein neues ATL-Object (Simple Object)hinzu. Wenn du in dem dicken Rahmen einen Namen für das Object angegeben hast drück auf OK.

    Die nächste Aufgabe besteht darin die Methode zu denfinieren. Dazu gehst du mit der Maustaste auf das IDeinName und wählst AddMethod...

    Bei Method Name schreibst du den Namen der Methode rein.

    Bei Parameter bitte:
    [in] int nX, [in] int nY, [out, retval] int* nRetVal

    So jetzt wird es ganz einfach du öffnest die Klasse CDeinName dann IDeinName und dort findest du jetzt deine Funktion. In die Funktion schreibst du dann die Addition:
    z.B.
    *nRetVal = nX +nY;

    Dann compilierst du den ganzen Spass und schon geht es in VB.

    Dort gehst du in Projekt->References und dann in Browse gehst in das Ausgabeverzeichniss von deiner neuen DLL die du anklickst und so deinem Projekt zugäglich machst.

    Dann fügst du diesen kurzen Code ein:

    Code:


    Private Sub Form_Load()

    Dim x As New ATLADDLib.Sum

    MsgBox x.Sum(2, 1)

    End Sub

    [/code]


    ATLADDLib.Sum musst du durch deine Namen ersetzten.

    So und schon sollte es klappen.

    Joe



  • Joe, das ist aber COM und keine "klassische" DLL, aber ich finde die Erläuterung trotzdem super...

    ------------------
    Viele Grüße

    Marc++us

    Besucht die C/C++-Ecke
    http://www.c-plusplus.net



  • @CMarcus

    Da hast du schon recht aber warum umständlich wenn es mit COM und ATL so einfach geht. Gerade wenn ich Daten in VB weiterverarbeiten will ist COM für mich immer die erste Wahl (auch bei vielen Sachen in C++ http://www.c-plusplus.net/ubb/ubb/wink.gif ). COM ist viel einfacher und sinnvoller als die langläufige Meinung es suggeriert und die Unterstützung von VB ist eigentlich erstklassig bis auf das Problem mit unsigned char* http://www.c-plusplus.net/ubb/ubb/frown.gif. Aber OK, was ich eigentlich sagen will ist COM ist cool. http://www.c-plusplus.net/ubb/ubb/biggrin.gif http://www.c-plusplus.net/ubb/ubb/biggrin.gif http://www.c-plusplus.net/ubb/ubb/biggrin.gif http://www.c-plusplus.net/ubb/ubb/biggrin.gif

    Joe

    [Diese Nachricht wurde von JoeIntel am 26-10-2000 editiert.]


Anmelden zum Antworten