DLL Wrapper/Bridge (Namepsace System ist kein Namespace)



  • Hi,

    vorab ich komme aus der Java Welt und benötige nun einen Wrapper für ein DLL, die ich in Java verwenden will. Ich habe bereits TestDLLs mit exportierten Methoden erstellt und konnte diese auch ohne Probleme in Java wie gewünscht einbinden.

    Nun versuchte ich mich an meinem konkreten Anwendungsfall, eine DLL in C++ mittels Reflection zu laden und diese dann zu exportieren.

    Damit bin ich dann schnell an meine Grenzen gestoßen, da ich nun immer die Fehlermeldung bekommen:

    Fehler (aktiv)	E0725	Der Name muss ein Namespacename sein.
    

    Für die Anweisung

    using namespace System;"
    

    Ich habe das Projekt in VS erstellt, den Projekt-Typ "DLL mit Exporten" gewählt und die clr Unterstützung aktiviert. Leider bekomme ich immer noch diesen Fehler.

    Dann habe ich versucht die DLL "mscorlib.dll" direkt über

    #using <mscorlib.dll>
    

    einzubinden, leider auch mit mäßigen Erfolg, denn nun bekomme ich folgende Fehlermeldung

    E1943	"#using" erfordert C++/CLI-Modus
    

    Kann mir hier eventuell jemand weiterhelfen? oder einen schnelleren Weg nennen wie ich eine DLL laden kann, deren nicht exportierte Methoden verwenden, um diese dann nach außen zu exportieren, um diese wiederum in JAVA verwenden kann.


  • Mod

    Du versuchst ein C++/CLI Programm mit einem C++-Compiler zu übersetzen. Du musst den Common Language Runtime Support für dein Projekt aktivieren.



  • Hi,
    mit
    @Zoerre sagte in DLL Wrapper/Bridge (Namepsace System ist kein Namespace):

    die clr Unterstützung aktiviert

    dachte ich dass dies erledigt wäre, fehlt mir noch eine Einstellung ?

    LEider kann ich kein Screen-Shot einbinden daher hier Textuell die Einstellung

    Unter C++/CLI-Eigenschaften habe ich den Parameter
    => "Common Languiage Runtime Unterstützung"
    auf
    => Common Language Runtimer-Unterstüzung (/clr)
    gestellt.

    In den Optionenen des Projektes taucht es auch auf:

    /permissive- /Yu"pch.h" /GS /W3 /Zc:wchar_t /Zi /Od /sdl /Fd"x64\Debug\vc142.pdb" /Zc:inline /fp:precise /D "_DEBUG" /D "TESTDLLCS_EXPORTS" /D "_WINDOWS" /D "_USRDLL" /D "_WINDLL" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /clr /MDd /FC /Fa"x64\Debug\" /EHa /nologo /Fo"x64\Debug\" /Fp"x64\Debug\TestDllCS.pch" /diagnostics:column 
    

  • Mod

    Nun, das schaut ja auf den ersten Blick richtig aus. Bist du sicher, dass diese Einstellungen auch angewendet werden? Nicht dass da vielleicht was schief geht, weil du es nur für eines von Debug/Release eingestellt hast, nun aber die andere Konfiguration benutzt...

    PS: Jedenfalls ist das eher eine Frage dazu, wie Compiler/IDE korrekt eingestellt werden müssen, daher verschiebe ich das mal in ein passenderes Unterforum



  • Ja ich muss sagen, dass man seine IDE beherrschen sollte wenn man etwas entwickeln möchte.

    Super vielen dank!!! hat sofort funktioniert...

    jetzt schau ich mal weiter ob der Rest auch funktioniert 😎