System::String^ in einen char*



  • char*	TCA(String^	in){
    			char* p=new char[in->Length];
    				for(int i=0;i<in->Length;++i)p[i]=safe_cast<char>(in[i]);
    			return p;
    		}
    

    Mach aus einem "Title" ein "Titleyyyyyyyyy~~~~~~~~~~~~~~~~~~" oder was weiß ich Aber eigentlich müsste es doch so funktionieren, oder was mache ich falsch?



  • In der FAQ findest Du einen Beitrag zum Thema umwandlung.

    Schliesse mal den char * mit \0 ab



  • Achso stimmt, \0 schließt den char* String, bei System::String^ ist das nicht mehr notwendig wegen der Length property
    habs jetzt um p[in->Length]=0; erweitert



  • Schau Dir aber mal den Beitrag in der FAQ an, eventuell spart es Dir noch ein paar Bauchschmerzen. (ka ob man so einfach mit nem cast auf char das gewünschte Ergebnis sicher bekommt).

    Ich bin zwar hundemüde - aber müsstest Du nicht in->Length + 1 allokieren und p[in->Length+1] als Index für \0 verwenden ?



  • Nein ich habs schon probiert war mein erster gedanke aber ich hatte dann Titelì raus und dann hab die +1 weggelassen und und dann hats funktioniert


Anmelden zum Antworten