C# Headerdateien in VC++



  • Hallo,

    C# Projekttyp Klassenbibliothek. Alles was exportiert werden soll, bzw. in Deinem C++ Programm aufgerufen werden muß, machst Du public:

    using System;
    
    namespace sharpDLL
    {
        public class HelloWorldClass
        {
            public void HelloWorld()
            {
                Console.WriteLine("Hello World");
            }
        }
    }
    

    C++/CLI Projekt. In den Projekteigenschaften einen Verweis auf die C#-DLL machen und den Namespace inkludieren:

    using namespace sharpDLL;
    
    int main(array<System::String ^> ^args)
    {
    	HelloWorldClass ^cls = gcnew HelloWorldClass();
    	cls->HelloWorld();
        return 0;
    }
    

    Gruß
    foodax



  • Danke Leute hat funktioniert und ich bin wieder um einiges schlauer!!

    MFG



  • Hallo zusammen,
    ich habe ein großes cpp-Projekt und wollte nach diesem Muster meine C#-ClassLibray einbinden. Zum Test habe ich euer Beispiel ausprobiert. Leider ohne erfolg...mein namespace (von c# dll) würde nicht existieren

    Könnt Ihr mir weiterhelfen?
    benötigt Ihr mehr Infos?



  • Lies meinen Beitrag; falls Du mit cpp Projekt ein C++ Projekt und nicht etwa ein C++/CLI Projekt meinst ist der Falls klar.



  • danke für die schnelle Antwort,
    aber wie kann ich die Referenz auf dieses neu erzeugte Assembly hinzufügen?

    ich habe deine Beitrag gelesen, aber zu wenig erfahrung mit Cpp

    Bei C# würde ich unter "Verweise" die entsprechende Projektdatei hinzufügen, wie bei einem Cpp-Projekt?
    Vielen Dank



  • Genau gleich!?

    Project|References...|Add New Reference...



  • jep...danke man, das hat funktioniert 🙂



  • noch mal eine generelle Frage:
    Habe ich eine chance ein c#-DLL in eine nicht C++/CLI-Projekt einzubinden?

    In dem C++-Projekt (nicht von mir) habe ich einige Codestellen, wie bei diesem Objektzeiger:

    ProgrammData *p = new ProgrammData;
    

    das ist doch nicht C++/CLI oder?

    Bei C++/CLI würde es doch eher so aussehen:
    ProgrammData ^p = gcnew ProgrammData;



  • andreason schrieb:

    noch mal eine generelle Frage:
    Habe ich eine chance ein c#-DLL in eine nicht C++/CLI-Projekt einzubinden?

    "Ja"
    1. Via COM Interop: http://www.codeproject.com/KB/COM/COM_DOTNET_INTEROP.aspx
    2. Du könntest auch die CLR in deinem Prozess Hosten

    andreason schrieb:

    In dem C++-Projekt (nicht von mir) habe ich einige Codestellen, wie bei diesem Objektzeiger:

    ProgrammData *p = new ProgrammData;
    

    das ist doch nicht C++/CLI oder?

    Genau. Das ist C++.

    andreason schrieb:

    Bei C++/CLI würde es doch eher so aussehen:
    ProgrammData ^p = gcnew ProgrammData;

    Genau. Das ist C++/CLI.



  • Wie kann man das machen?


Anmelden zum Antworten