Frage zu: C++ ->(COM Interop)-> C# HRESULT -2147024894



  • Hallo,

    folgendes Problem beschäftigt mich schon seid Tagen und ich komme einfach nicht dahinter was falsch ist.

    Ich habe ein C# CSharpToC.dll erstellt.
    ------------------------- C# Code ------------------------------

    [System.Runtime.InteropServices.Guid("05CE129A-502F-4906-8FAF-50A790C11E81")]
    public interface CSharpInterface
    { void ShowMessageNow(); }

    [System.Runtime.InteropServices.Guid("6F79A41A-13E0-412f-AFB1-D2C1CDBCFBA1")]
    public class Class1:CSharpInterface
    {
    public Class1() {}
    public void ShowMessageNow()
    {System.Windows.Forms.MessageBox.Show("Ich werde angezeigt!! "); }
    }

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

    Nach dem erstellt habe ich diese wie gewöhnlich mit dem Befehl "regasm CSharpToC.dll /tlb: CSharpToC.tlb" registiert und die .tlb Datei im CPP File includiert

    ------------------------- C++ Code ------------------------------

    #import "CSharpToC.tlb" named_guids

    int main (int argc, char* argv[])
    {
    int iValue = 0;
    HRESULT hr = 0;

    CoInitialize(NULL);
    CSharpToC::CSharpInterface * test = NULL;

    hr = CoCreateInstance(CSharpToC::CLSID_Class1,
    NULL , CLSCTX_INPROC_SERVER,
    CSharpToC::IID_CSharpInterface,
    reinterpret_cast<void**> (&test));

    if(hr == S_OK )
    test->ShowMessageNow();
    else
    printf("There was an Error when creating the Instance <HRESULT>: %d", hr);

    CoUninitialize();

    return 0;
    }
    ----------------------------------------------------------------

    Nun kommt es zu folgendem Fehler:
    hr liefert mir immer den Wert -2147024894 zurück (laut Informationen bedeutet diese Meldung, dass das System die angegebene Datei nicht finden kann)

    und im Debug Fenster kommt die Meldung:
    Nicht abgefangene Ausnahme in R03CSHFC.exe (KERNEL32.DLL): 0xE0434F4D: (kein Name).

    Ich habe alle Registry Einträge nach Korrektheit und Vollständigkeit geprüft, und es sind keine Fehler dabei.

    Hat jemand eine Idee wo der Fehler liegen könnte.??

    MfG
    Roman



  • Dieser Thread wurde von Moderator/in evilissimo 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