Kommunikation zwischen c++ DLL und VB



  • Hallo Leute!

    Ich hoffe dass ich mit meinem Thread in diesem Forum richtig bin, wenn
    nicht entschuldige ich mich hiermit!

    Vorgabe:

    (1) ein nicht in C geschriebenes Programm "erstellt" zur Laufzeit einen Verweis
    auf ein AtiveX-Object (hier: "Server.Nachricht")

    (2) eine in C++ geschriebene DLL

    Ziel:

    ist es, eine "Brücke" von der C DLL zu dem Programm aufzubauen um mit diesem zu
    kommunizieren (einfach einen String übergeben)

    Mein Problem ist es eine Kommunikation von einer in C geschriebenen
    Dll zu einem VB Programm aufzubauen.

    in VB läuft das so (kurz und knapp):

    Private Server As Object
    Set Server = GetObject(, "Server.Nachricht")
    
    -> Server.Message "Hallo ich bin eine Nachricht oder so" <-
    

    dieses "Server.Message" ist mein Problem

    --------------------------------------------------------------

    In der MSDN habe ich ein Beispiel gefunden und etwas
    abgeändert:

    //main.c
         #include <stdio.h>
         #include <windows.h>
         #include <oleauto.h>
         #include <unknwn.h>
          void main(void) {
             IUnknown *pUnk;
             CLSID clsid;
             HRESULT hr;
             OleInitialize(NULL);
             {
             hr = CLSIDFromProgID(L"Server.Nachricht", &clsid);
             if(FAILED(hr)) {
               MessageBox(NULL, "Server.Nachricht nicht gefunden", "Error", MB_SETFOREGROUND);
               return;
               }
                hr = GetActiveObject(&clsid, NULL, (IUnknown**)&pUnk);
                if(FAILED(hr)) {
                   MessageBox(NULL, "Keine Verbindung zum Programm oder so", "Error", MB_SETFOREGROUND);
                   return;
    	    }else{
                   MessageBox(NULL, "Verbindung zum Programm oder so", "OK", MB_SETFOREGROUND);
                   return;
    	}
             }
             OleUninitialize();
          }
    

    In diesem Beispiel wird nur, soweit ich das interpretieren
    kann, eine "Verbindung" erstellt (ich hoffe dieses
    Beispiel ist nicht mit allzuvielen Fehlern gespickt)
    aber dann hörts bei mir schon auf!

    Kann ich das als Lösungsansatz bezeichnen?
    Könnt ihr mir bitte weiterhelfen?

    Vielen Dank für Eure Hilfe

    mfg bump



  • Wenn alles Erfolgreich war, hast nen Interface über pUnk und da kannst ja über QueryInterface das richtige Interface holen.



  • Hallo!

    ... schrieb:

    Wenn alles Erfolgreich war, hast nen Interface über pUnk und da kannst ja über QueryInterface das richtige Interface holen.

    hört sich einfach an aber genau da liegt mein Problem!

    Kurz gesagt ich habe keine Ahnung wie ich das Zustande bringen soll! 😕

    Könntet Ihr mir ein Beispiel geben?

    mfg bump



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.

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

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten