Dll einbinden in C#

Moinsen Leutz!

Ich hab gerade ein Problem mit dem Einbinden einer Cpp-Dll in ein C# Projekt. Normalerweise ist das doch ein Problem weniger Zeilen.
Also, ich „use“ den InteropService über using System.Runtime.InteropServices;
Dann binde ich die Dll ein: [DllImport(„DllName.dll“)]
Dabei bekomme ich folgende Fehlermeldung:Das DllImport-Attribut ist für diesen Deklarationstyp nicht gültig. Es ist nur für method-Deklarationen gültig..

Ich wäre für jede Art von Hilfe dankbar.

Bis denne, Stefan.

Hallo.

Vielleicht kann das hier inspirieren: http://dotnet-snippets.de/dns/dll-aufruf-SID28.aspx

mfg M.L.

Danke, hat geholfen, nur jetzt bin ich gleich ins nächste Problem gerutscht. Ich übergebe an die Dll C-Strings (char*) als Puffer für Verbale Fehlerbeschreibungen und ähnliches. das ist normalerweise ein byte[], welches ich mit einer statischen Größe von „1k“ (1024) übergebe. Dei Dll kann in dieses Array schreiben (memcpy), da es ja der Pointer auf dieses Array übergeben werden sollte. Da kommt aber gar nichts.
Falls sich nun noch jemand findet, der eine Idee zu diesem Theam hat, wäre ich auch diesem Retter in der Not zu dank verpflichtet.

Bis denn. Stefan

Hallo!
Hier: http://msdn2.microsoft.com/de-de/library/fzhhdwae(VS… findest Du Infos zum Marshalling von unterschiedlichen Datentypen bei Aufrufen an nicht verwaltete DLLs.
Ohne die Signatur der aufgerufenen Funktion genau zu kennen, würde ich als erstes in diesem Fall auf C#-Seite zu einem StringBuilder raten, der normalerweise für die Übergabe von Stringwerten vom nicht verwalteten zum verwalteten Code verwendet wird.
Aber lies’ Dir vll. einfach mal die Seiten dort durch, da wird alles detailliert erklärt.

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Besten Dank, ich hab die StringBuilder verwendet, und es schnurrt wie ein Kätzchen.

Bis denne, Stefan