DLL will net

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    DLL will net

    Hallo,

    ich muss/will eine DLL in meinem VB.NET-Projekt verwenden und scheitere kläglich.

    1) DLL wurde in C++ erstellt, vermutlich 32bit. Autor ist bekannt, reagiert leider nicht auf meine Anfragen. DLL funzt prinzipiell, sowohl in C++-Projekt als auch mit LabView 2018 32bit (... weiß ich vom Hörensagen)
    2) DLL habe ich in den Projektordner kopiert und dem Projekt hinzugefügt.
    3) .. ??

    3a) Die DLL unter Verweise hinzufügen geht nicht, Einstiegspunkt wird nicht gefunden
    3b) DLL unter Windows (Win10 64bit) registrieren (regsvr32) geht nicht, Einstiegspunkt wird nicht gefunden
    3c) Mit declare einbinden geht nicht, DLL wird nicht gefunden
    3d) mit <DLLImport> einbinden geht nicht, DLL wird nicht gefunden

    Und nu? Wenn ja die DLL anderswo auch versagen würde, könnte man annehmen, die wäre kaputt. Aber so??

    Prinzipiell habe ich folgende Fragen:

    a) Muss eine DLL *immer* registriert werden?
    b) wie geht man damit um, dass die DLL evtl. auf verschiedenen Rechner an verschiedenen Orten abgelegt wird (Wenn sie im Anwendungsordner und nicht unter Windows\.. liegt)
    c) Was ist zu beachten, wenn 32 bitige DLLS unter 64 bit registriert werden?
    d) Warum will die DLL bei mir nicht, wo liegt mein Fehler?
    e) Wo gibt es einen Sandsack zum Draufhaun?

    Gruß

    MQ
    @MasterQ Unter der Voraussetzung, dass die DLL an sich in Ordnung ist, musst Du einen Wrapper dafür schreiben, gugst Du hier:
    Austausch von Daten zwischen einer VB.NET-exe und einer C-DLL, 32 und 64 Bit
    Du brauchst die Deklarationen der anzusprechenden Prozeduren in einer "lesbaren" (Programmier-)Sprache, die Du dann Schritt für Schritt übertragen musst.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke für diesen Hinweis. Da werde ich mal durchhangeln.

    Was mich verwundert ist, dass auch ein regsvr32 fehl schlägt. Gerade das sollte mit unmanaged doch klappen. Für managed Code ist regasm zuständig.

    Unnötiges Zitat entfernt ~NoFear23m

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Nofear23m“ ()

    MasterQ schrieb:

    dass auch ein regsvr32 fehl schlägt
    Klar.
    Diese DLL ist keine COM-DLL.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @MasterQ unvollständige Aufzählung:
    x86, x64
    native, .NET-Assemblies, COM
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!