native classen im assembly exportieren?



  • ist das irgendwie möglich, native classen in einem mixed assembly zu exportieren?

    es gibt ja entweder:

    public class blubb {/*..*/};
    

    oder

    class blubb {/*..*/};
    #pragma make_public(blubb)
    

    aber irgendwie bringts das nich, denn wenn ich in einem anderen projekt diese versuch zu benutzen, brauch ich einerseits immer noch die header-dateien (also normal #include "blub.h")
    und leider linkt der das nich...also müsst ich, damit es funzt, auch #include "blub.cpp" machen, womit ich ja nich die dll bräucht...
    is das nich irgendwie möglich, die wie C++cli klassen zu verwenden?
    einfach assembly referenzieren und tada?
    oder der alte weg per linken der *.lib? (die s da aber irgendwie nichmehr gibt)



  • Wenn ich dich richtig verstanden hab, ist das nicht so möglich wie du dir das grad denkst.

    In der mixed Assembly kannst du ohne Probleme deine native C++ Klasse einbinden. Um nehmen wir mal an du hast ne managed Assembly die diese Klasse benutzen soll. Dann geht das ganze nicht so direkt. Du müsstest in deiner mixed Assembly erst ne managed Wrapperklasse schreiben die die native Klasse kapselt und dann hast es geschafft. Du kannst aus deiner rein managed Assembly die managed Wrapperklasse der mixed Assembly benutzen und diese benutzt wiederum die native C++ Klasse mit der Lib oder wo auch immer die drin ist. Genau für solche Szenarien ist C++/CLI wie geschaffen 🙂

    Auf das wolltest doch hinaus oder hab ich dich falsch verstanden?



  • jein...
    also im prinzip will ich C++cli und C++ gleichzeitig benutzten, hab mehrere mixed assemblies, und will jetzt von der einen mixed-assembly native UND managed-classen in der anderen mixed-assembly benutzen
    also ganz normal wie stinknormale DLLs.
    bei denen isses ja so, dass du die dazu erstellte lib linken musst, damit das alles funzt, die gibt es aber bei dem cli-zeug nich mehr...

    und da ich nun über die zwei obigen code-schnippsel gestolpert bin, dacht ich, dass die ja zu irgendwas nütze sein müssten, aebr wenn das nich möglich ist, wofür sind die dann`?
    und wie kann ich nun meine nativen classen aus einer mixed assembly mit sozusagen den baseklassen der anderen linken? oder müsst ich, um das zu erreichen, praktisch ne pur native C++-dll erstellen? das wär ja blöd, dann wären ja mixed-blabla nur halb so gut, wie s klingt ;(((



  • ach ja, und wrapper will ich nicht habn, hab ich vergessen zu sagen--


Anmelden zum Antworten