C++ DLL in VB benutzen



  • Hallo !

    Hier meine Frage :

    Ich habe eine DLL in C++ 7 geschrieben (mit Automation falls jemand weiss was das bedeutet , gut 🙂 )

    Sieht so aus :

    BOOL __declspec(dllexport)__stdcall  MeineFunktion(int x);
    

    Die möchte ich in Visual Basic benutzten :
    Projekt->Verweise-> "hier die DLL einbinden"

    OK

    Die Funktionen hab ich so deklariert :

    Option Explicit
    Private Declare Function MeineFunktion Lib "C:\DerKorrektePfad\MeineDLL.dll" (byval x as integer) As Boolean

    und dann im Programm benutzen : (VB)
    Dim x as Integer
    x = 100
    Call MeineFunktion(x)

    oder auch so :
    MeineFunktion(x)

    Aber jetzt das Problem :
    In der DLL kommt nicht 100 an sondern -32476 oder sowas
    (mit MessageBox in DLL rausgefunden)
    Warum nur ??? 😕



  • Dieser Thread wurde von Moderator/in davie aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Help! 😃



  • Hallo,

    versuche es mit einem short int (ein Visual Basic-Integer hat nichts mit einem C++-int zu tun):

    BOOL __declspec(dllexport)__stdcall  MeineFunktion(short x);
    

    MfG



  • Kann es sein das du nicht weisst wovon du redest

    (mit Automation falls jemand weiss was das bedeutet , gut 🙂 )

    Wenn du tatsächlich eine COM-DLL geschreiben dann musst/kannst du die Komponente über Verweise einhängen. In diesem Fall ist das "Declare" jedoch völlig sinnlos.

    Hast du andererseits eine Standard-DLL geschrieben, so ist das "Declare" richtig, aber die "Anbindung" über Verweise jedoch sinnlos.

    Wenn du genau weiss was du da in C++ wirklich gemacht, hast dann melde dich doch bitte nochmal.



  • Mich interessiert das Thema, obwohl ich überhaupt keine Ahnung davon habe... C/C++ und VB kann ich programmieren, aber wie mache ich aus C++ Code eine DLL ? Welche Tools braucht man ggf. ?



  • (Hoffentlich) jede Entwicklungsumgebung für Windows-Programme unterstützt die Erstellung von DLLs sowohl "echte" DLLs oder auch COM-DLLs. Wie es geht kann ich hier zumindest nicht in 2 oder 3 Sätzen erklären.

    Umfassende Erklärungen gibts in der Standard-Literatur:
    - Petzold, Richter (Standard-DLLs)
    - Box, Rodgerson (COM)



  • ausserdem .def datei zur c++ dll hinzufügen und die namen der funktionen reinschreiben die von vb aus aufgerufen werden sollen

    dann noch die funktionen in das vb programm eintragen und fertig

    such mal n bissi in der msdn... da wird alles genau erklärt


Anmelden zum Antworten