char [] in String^



  • Hallo zusammen,

    ich habe zwar versucht etwas darüber hier und in google zu finden, aber ich habe bis jetzt noch nicht die richtige lösung für mich gefunden.

    Folgendes Problem... ich rufe in einem Win32-Projekt eine C++.Net DLL funktion auf. Im Win32-Projekt habe ich ein char* und in .Net ein String^. wie kann ich das definieren, damit das geht?

    //In Win32
    void ExtractString(char *string)
    {
       obj->ExtractStringDOTNET(string);
    }
    
    //In der .NET DLL
    int ExtractStringDOTNET(String^ string)
    {
     .... //Verarbeite
    }
    

    error C2664: Konvertierung des Parameters 1 von 'char *' in 'System::String ^' nicht möglich

    Eigentlich ja klar, aber wie kann ich dieses Problem lösen? Marshalling? Nur wie?

    Vielen Dank für eure Hilfe!

    Gruß



  • OK habs schon selbst rausgefunden...

    ich habe im Win32-projekt den Construktor von System::String genutzt.

    void ExtractString(char *string)
    {
      System::String^ sStr = gcnew System::String(string);
      obj->ExtractStringDOTNET(sStr );
    }
    

Log in to reply