Visual C# - ++ dll einbinden und weitergeben

Hallo,
ich hab ein Problem mit dem Einbinden eine c++ dll in einem C# Visual Studio 2010 Projekt.
Die dll ist mit dllimport eingebunden.
Die dll liegt im Bin und im Release ordner des Projektes und auf dem PC auf dem das Projekt erstellt wurde läuft das ganze auch super.
Wenn ich jetzt allerdings das Programm auf einen anderen PC kopiere (den Debug oder Release Ordner, oder eine Veröffentlichung des Projektes) wird die dll nicht mehr gefunden und das Programm stürzt ab. Obwohl die dll immernoch exakt in dem Verzeichniss liegt von dem das Programm gestartet wird.
Ich such jetzt schon seit einigen Stunden und komme einfach auf keinen grünen Zweig was ich noch machen kann.
Ich bin für jede Hilfe dankbar. Vielleicht könnte ja mal jemand kurz erläuter wie die dll in das C# Projekt richtig eingefügt werden muss. Aktuell habe ich Sie in das Projektverzeichniss reingezogen und in den Eigenschaften bei Buildvorgang Inhalt eingestellt und dass es immer kopiert wird.

Viele Grüße,

Stephan

Hallo!
Mit ziemlicher Sicherheit liegt es nicht daran, dass Deine DLL nicht gefunden wird, sondern daran, dass von der DLL benötigte andere DLLs auf dem Zielsystem nicht vorhanden sind.
Verwendest Du in der DLL bspw. MFC? Dann muss auch die entsprechende MFC-Version auf dem Zielrechner installiert sein (Achtung auch insb. wegen Debug vs. Release!).

Z.B. mittels DependencyWalker oder PEExplorer kannst Du Dir die Abhängigkeiten anschauen und dann die nötigen Redist-Pakete auf dem Zielrechner installieren.

Gruß,
Martin

Hallo Martin,

Vielen Dank für die schnelle Hilfe. Das hat tatsächlich das Problem gelöset. Mit dem Dependency Walker habe ich gesehen dass das Visual Studio auf Grund einer falschen Einstellung in den Projekteigenschaften zusätzlich die mvcr100.dll eingebunden hat.
Eigentlich klar dass eine visual c runtime dll auf einem Rechner ohne Visual C nicht vorhanden ist.

Also Vielen Dank nochmal und ein schönes Wochenende.

Gruß,

Stephan

Gerne doch! :smile:
Die Meldung „Datei nicht gefunden“ ist aber auch wirklich irreführend, wenn es sich um eine abhängige Datei handelt.
Bekanntester „Hääää?“-Effekt: Versuch, eine COM DLL per regsvr32 zu registrieren, man sieht die Datei vor sich, hat sich auch garantiert nicht vertippt und dennoch meldet regsvr32, dass „die“ Datei nicht gefunden wurde.

Gruß,
Martin