Problem mit mehrfach deklarierten Enums Fehler C2011



  • Hallo,

    ich versuche eine klassiche - nicht .NET-Dll - zur Integration sebstgeschriebener Funktionalitäten in eine bestehende Software (TradeStation) zu schreiben.

    Die Funktionen schreibe ich in einer VB-Dll (.NET). In diese muss ich die Interorp.Dll des Herstellers der Software (Referenz Interorp.TSKITLib.dll) einbinden.

    Anschließend muss ich in C++ die Funktionen wrappen und in einer nicht-.NET-Dll bereitstellen. In C++ muss ich die VB-DLL und die TypeLibrary der nicht-.NET Version (TSKITLib.dll) einbinden.
    Konkret im Code dann

    #import "tskit.dll" no_namespace
    #import TsAdmgVb.tlb" raw_interfaces_only no_namespace

    Soweit so gut.

    Leider bekomme ich dann den Fehler C2011, da im Hearderfile eine Enum über beide Imports definiert worden ist. Und das gefällt C++ natürlich nicht.

    /* dual interface */ _TsAdmgVb;
    enum EN_DATA_STREAM;

    enum __declspec(uuid("e700acc4-fb27-327b-94a0-90a123c9ddf6"))
    EN_DATA_STREAM
    {
    EN_DATA_STREAM_data1 = 0,
    EN_DATA_STREAM_data2 = 1,
    ...

    Kann mir jemand einen Rat geben was zu tun ist? Mein C++-Zeiten sind leider lange Vergangenheit.

    Herzlichen Dank

    Martin


Anmelden zum Antworten