Laden...

C-code in C# einbinden

Erstellt von -Hades- vor 13 Jahren Letzter Beitrag vor 13 Jahren 5.895 Views
Thema geschlossen
-
-Hades- Themenstarter:in
171 Beiträge seit 2007
vor 13 Jahren
C-code in C# einbinden

Hallo allerseits,

ich habe ein altes Konsolenprogramm. Dabei habe ich allerdings nur die C Datei und eine dazugehörige Headerdatei.
Ich würde den Code gerne in C# nutzen.
Ich habe um dies zu bewerkstelligen bis jetzt folgendes ausprobiert:

Ich habe zunächst versucht aus dem Code eine c++ dll zu machen. Die dll habe ich auch bekommen, allerdings konnte ich wenn ich diese als Verweis im C# Programm eingefügt hatte nichts damit anfangen.

Dann habe ich eine C++ Konsolenanwendung daraus erstellt, aber wenn ich die Binary dann als Verweis hinzufügen wollte kam die Meldung das das nicht geht und ich überprüfen solle ob es eine gültige assembly und COM ist. Ich habe die CLR-Unterstützung dann aktiviert und konnte es einbinden. Allerdings konnte ich es dann nicht über "using" im C# Code ansteuern und im Objektbrowser war auch kein Namespace definiert für den Verweis. Habe auch keinen Namespace im c++ Code definiert aber wenn ich das versuche bekomme ich dort auch immer nur Fehler.

Kann mir vielleicht jemand einen Weg aufzeigen wie ich das gescheit hinbekomme aus altem C Code etwas zu machen das ich in C# einbinden kann ohne den Code gravierend umzuschreiben und ohne Interop nutzen zu müssen?

Gruß -Hades-

C
401 Beiträge seit 2007
vor 13 Jahren

Hi,

gibt es viele Beiträge hier im Forum und auch viele Treffer bei Google: Klick mich

799 Beiträge seit 2007
vor 13 Jahren

Ich hab letztes Semester für eine Security-Übung eine kleine native Bufferoverflow anfällige Assembly in C# eingebunden um auch gleich zu verstehen, wie ich native Assemblys einbinden kann.

Das ist alles sehr, sehr einfach gehalten. Es gibt eine kleine C-Assembly (security.h, security.c), Proxy-Code (Security.cs) und das kleine Programm das ihn nutzt.

Vielleicht hilft dir ja das Beispiel.

As a man thinketh in his heart, so he is.

  • Jun Fan
    Es gibt nichts Gutes, außer man tut es.
  • Erich Kästner
    Krawutzi-Kaputzi
  • Kasperl
49.485 Beiträge seit 2005
vor 13 Jahren

Hallo -Hades-,

Ich habe zunächst versucht aus dem Code eine c++ dll zu machen. Die dll habe ich auch bekommen, allerdings konnte ich wenn ich diese als Verweis im C# Programm eingefügt hatte nichts damit anfangen.

mach eine native C DLL draus. Die musst du dann natürlich mit DllImport einbinden.

Aber wie Corpsegrinder schon sagt: 1000 mal besprochen.

herbivore

Thema geschlossen