Linkerfehler nach verwendung von CLR



  • Hallo,

    ich hoffe ich habe jetzt das richtige Unterforum getroffen.

    Ich möchte gerne in meine C++ Solution eine C# DLL einbinden. Das klappt soweit auch ganz gut, nur wird mir nach dem ich in den Projekteigenschaften die CLR aktiviert habe folgender Linker Fehler mehrfach ausgegeben.

    error LNK2001: Nicht aufgel÷stes externes Symbol ""public: virtual void __thiscall PLWinBmp::AssertValid(void)const " (?AssertValid@PLWinBmp@@UBEXXZ)".

    Ich habe schon versucht die entsprechende Funktion ausfindig zu machen allerdings ohne Erfolg. Weswegen ich auch leider keinen Quellcode zur Verfügung stellen kann.
    Die Meldung bekomme ich für jede meiner Klassen und sie lautet immer gleich.

    Kann von euch jemand etwas mit der Fehlermeldung anfangen?



  • Dies scheint wohl die PaintLib zu sein, d.h. diese mußt du noch in den Linkereinstellungen angeben: "paintlib.lib".

    Handelt es sich denn um eine öffentliche C#-Lib (oder hast du Zugriff auf die Sourcen)? Denn die paintlib wird ja schon seit 10 Jahren nicht mehr weiterentwickelt.



  • Die blöde Paintlib ist in meinem C++ Program verwendet(Das auch schon 10 Jahre alt ist). Die C# habe ich geschrieben hier wird die Paintlib nicht verwendet.

    Im C++ Programm ist die Lib richtig eingebunden und hat vorher auch wunderbar funktioniert. Nur eben nicht mehr nachdem ich die Verwendung von CLR erlaubt habe.
    Kann es sein das dieser Dinosaurier von paintlib nicht fähig ist mit CLR zusammen zu arbeiten?



  • Dann solltest du evtl. dein Projekt auf mehrere aufteilen:
    - ein CLR-Hauptprojekt
    - ein natives C++ Projekt (mit PaintLib etc.)
    - das C#-Projekt

    Dient das C#-Projekt als UI für dein C++ Projekt?



  • Ne C# ist die Socket Verbindung.

    Ich weiß nicht schön aber selten.


Anmelden zum Antworten